From 7e053a666c8de3ac0565c2c69d5f90102cd2f477 Mon Sep 17 00:00:00 2001 From: "T. Narantuya" Date: Sat, 6 Sep 2025 13:58:54 +0900 Subject: [PATCH] Add sharp library for image processing and enhance provisioning logic - Added sharp library to package.json for image manipulation capabilities. - Updated pnpm-lock.yaml to include sharp dependency. - Enhanced HealthController to include provisioning queue job counts in health checks. - Improved error handling and logging in ProvisioningProcessor for better diagnostics. - Refactored order fulfillment validation to utilize new WhmcsPaymentService for payment method checks. - Updated documentation to reflect changes in the provisioning workflow and added new integration overview. --- apps/bff/src/health/health.controller.ts | 8 + .../orders/queue/provisioning.processor.ts | 38 +++- .../src/orders/queue/provisioning.queue.ts | 37 ++-- .../order-fulfillment-validator.service.ts | 57 +++--- .../services/order-orchestrator.service.ts | 3 +- .../bff/src/orders/types/order-details.dto.ts | 1 + .../salesforce/events/pubsub.subscriber.ts | 78 ++++---- .../vendors/salesforce/salesforce.service.ts | 4 +- .../services/whmcs-connection.service.ts | 59 ++++++- .../whmcs/services/whmcs-order.service.ts | 19 +- .../whmcs/services/whmcs-payment.service.ts | 38 +++- apps/bff/src/vendors/whmcs/whmcs.module.ts | 1 + docs/PORTAL-INTEGRATION-OVERVIEW.md | 150 ++++++++++++++++ docs/PORTAL-NONTECH-PRESENTATION.md | 167 ++++++++++++++++++ docs/assets/portal-swimlane-1600x900.png | Bin 0 -> 113935 bytes docs/assets/portal-swimlane-1920x1080.png | Bin 0 -> 140624 bytes docs/assets/portal-swimlane.svg | 122 +++++++++++++ package.json | 1 + pnpm-lock.yaml | 10 +- scripts/tools/svg2png.mjs | 42 +++++ 20 files changed, 729 insertions(+), 106 deletions(-) create mode 100644 docs/PORTAL-INTEGRATION-OVERVIEW.md create mode 100644 docs/PORTAL-NONTECH-PRESENTATION.md create mode 100644 docs/assets/portal-swimlane-1600x900.png create mode 100644 docs/assets/portal-swimlane-1920x1080.png create mode 100644 docs/assets/portal-swimlane.svg create mode 100644 scripts/tools/svg2png.mjs diff --git a/apps/bff/src/health/health.controller.ts b/apps/bff/src/health/health.controller.ts index 22445469..3d7dcea4 100644 --- a/apps/bff/src/health/health.controller.ts +++ b/apps/bff/src/health/health.controller.ts @@ -21,6 +21,7 @@ export class HealthController { private readonly prisma: PrismaService, private readonly config: ConfigService, @InjectQueue(QUEUE_NAMES.EMAIL) private readonly emailQueue: Queue, + @InjectQueue(QUEUE_NAMES.PROVISIONING) private readonly provisioningQueue: Queue, private readonly cache: CacheService ) {} @@ -51,6 +52,12 @@ export class HealthController { "failed", "delayed" ); + const provisioningQueueInfo = await this.provisioningQueue.getJobCounts( + "waiting", + "active", + "failed", + "delayed" + ); // Check Redis availability by a simple set/get on a volatile key const nonceProbeKey = "health:nonce:probe"; @@ -70,6 +77,7 @@ export class HealthController { version: "1.0.0", queues: { email: emailQueueInfo, + provisioning: provisioningQueueInfo, }, integrations: { redis: redisStatus, diff --git a/apps/bff/src/orders/queue/provisioning.processor.ts b/apps/bff/src/orders/queue/provisioning.processor.ts index 05691214..5c7acde5 100644 --- a/apps/bff/src/orders/queue/provisioning.processor.ts +++ b/apps/bff/src/orders/queue/provisioning.processor.ts @@ -36,19 +36,43 @@ export class ProvisioningProcessor extends WorkerHost { const fields = getSalesforceFieldMap(); const order = await this.salesforceService.getOrder(sfOrderId); const status = (order?.[fields.order.activationStatus] as string) || ""; + const lastErrorCodeField = fields.order.lastErrorCode; + const lastErrorCode = lastErrorCodeField + ? ((order?.[lastErrorCodeField] as string) || "") + : ""; if (status !== "Activating") { this.logger.log("Skipping provisioning job: Order not in Activating state", { sfOrderId, currentStatus: status, }); + await this.commitReplay(job); return; // Ack + no-op to safely handle duplicate/old events } - // Execute the same orchestration used by the webhook path, but without payload validation - await this.orchestrator.executeFulfillment(sfOrderId, {}, idempotencyKey); + // Guard: Avoid thrashing on known user-actionable failures + if (lastErrorCode === "PAYMENT_METHOD_MISSING") { + this.logger.log("Skipping provisioning job: Awaiting payment method addition", { + sfOrderId, + currentStatus: status, + lastErrorCode, + }); + await this.commitReplay(job); + return; + } - // Commit processed replay id for Pub/Sub resume (only after success) - if (typeof job.data.pubsubReplayId === "number") { + try { + // Execute the same orchestration used by the webhook path, but without payload validation + await this.orchestrator.executeFulfillment(sfOrderId, {}, idempotencyKey); + this.logger.log("Provisioning job completed", { sfOrderId }); + } finally { + // Commit processed replay id for Pub/Sub resume (commit regardless of success to avoid replay storms) + await this.commitReplay(job); + } + } + + private async commitReplay(job: { data: ProvisioningJobData }): Promise { + if (typeof job.data.pubsubReplayId !== "number") return; + try { const channel = this.config.get( "SF_PROVISION_EVENT_CHANNEL", "/event/Order_Fulfilment_Requested__e" @@ -58,8 +82,10 @@ export class ProvisioningProcessor extends WorkerHost { if (job.data.pubsubReplayId > prev) { await this.cache.set(replayKey, String(job.data.pubsubReplayId)); } + } catch (e) { + this.logger.warn("Failed to commit Pub/Sub replay id", { + error: e instanceof Error ? e.message : String(e), + }); } - - this.logger.log("Provisioning job completed", { sfOrderId }); } } diff --git a/apps/bff/src/orders/queue/provisioning.queue.ts b/apps/bff/src/orders/queue/provisioning.queue.ts index eceffe61..5095ddbf 100644 --- a/apps/bff/src/orders/queue/provisioning.queue.ts +++ b/apps/bff/src/orders/queue/provisioning.queue.ts @@ -19,17 +19,32 @@ export class ProvisioningQueueService { ) {} async enqueue(job: ProvisioningJobData): Promise { - await this.queue.add("provision", job, { - removeOnComplete: 100, - removeOnFail: 100, - attempts: 1, // No automatic retries; Salesforce is source of truth for retry - }); - this.logger.debug("Queued provisioning job", { - sfOrderId: job.sfOrderId, - idempotencyKey: job.idempotencyKey, - correlationId: job.correlationId, - pubsubReplayId: job.pubsubReplayId, - }); + const jobId = + typeof job.pubsubReplayId === "number" + ? `sf:${job.sfOrderId}:replay:${job.pubsubReplayId}` + : `sf:${job.sfOrderId}`; + try { + await this.queue.add("provision", job, { + jobId, + removeOnComplete: 100, + removeOnFail: 100, + attempts: 1, // No automatic retries; Salesforce is source of truth for retry + }); + // Use info level so it's visible in default logs + this.logger.log("Queued provisioning job", { + sfOrderId: job.sfOrderId, + idempotencyKey: job.idempotencyKey, + correlationId: job.correlationId, + pubsubReplayId: job.pubsubReplayId, + }); + } catch (err: unknown) { + const msg = err instanceof Error ? err.message : String(err); + if (/already exists/i.test(msg)) { + this.logger.debug("Duplicate provisioning job ignored", { sfOrderId: job.sfOrderId, jobId }); + return; + } + throw err; + } } async depth(): Promise { diff --git a/apps/bff/src/orders/services/order-fulfillment-validator.service.ts b/apps/bff/src/orders/services/order-fulfillment-validator.service.ts index 8baaa4d7..66c07e2e 100644 --- a/apps/bff/src/orders/services/order-fulfillment-validator.service.ts +++ b/apps/bff/src/orders/services/order-fulfillment-validator.service.ts @@ -1,7 +1,7 @@ import { Injectable, BadRequestException, ConflictException, Inject } from "@nestjs/common"; import { Logger } from "nestjs-pino"; import { SalesforceService } from "../../vendors/salesforce/salesforce.service"; -import { WhmcsOrderService } from "../../vendors/whmcs/services/whmcs-order.service"; +import { WhmcsPaymentService } from "../../vendors/whmcs/services/whmcs-payment.service"; import { MappingsService } from "../../mappings/mappings.service"; import { getErrorMessage } from "../../common/utils/error.util"; import { SalesforceOrder } from "../types/salesforce-order.types"; @@ -23,7 +23,7 @@ export class OrderFulfillmentValidator { constructor( @Inject(Logger) private readonly logger: Logger, private readonly salesforceService: SalesforceService, - private readonly whmcsOrderService: WhmcsOrderService, + private readonly whmcsPaymentService: WhmcsPaymentService, private readonly mappingsService: MappingsService ) {} @@ -62,16 +62,24 @@ export class OrderFulfillmentValidator { }; } - // 3. Get WHMCS client ID from account mapping - const clientId = await this.getWhmcsClientId(sfOrder.Account.Id); + // 3. Get WHMCS client mapping + const accountId = (sfOrder as unknown as { AccountId?: unknown })?.AccountId; + if (typeof accountId !== "string" || !accountId) { + throw new BadRequestException("Salesforce order is missing AccountId"); + } + const mapping = await this.mappingsService.findBySfAccountId(accountId); + if (!mapping?.whmcsClientId) { + throw new BadRequestException(`No WHMCS client mapping found for account ${accountId}`); + } + const clientId = mapping.whmcsClientId; // 4. Validate payment method exists - await this.validatePaymentMethod(clientId); + await this.validatePaymentMethod(clientId, mapping.userId); this.logger.log("Fulfillment validation completed successfully", { sfOrderId, clientId, - accountId: sfOrder.Account.Id, + accountId, }); return { @@ -117,7 +125,7 @@ export class OrderFulfillmentValidator { ]; return typeof v === "string" ? v : undefined; })(), - accountId: salesforceOrder.Account.Id, + accountId: (salesforceOrder as unknown as { AccountId?: unknown })?.AccountId, }); return salesforceOrder; @@ -127,35 +135,25 @@ export class OrderFulfillmentValidator { * Get WHMCS client ID from Salesforce account ID using mappings */ private async getWhmcsClientId(sfAccountId: string): Promise { - try { - // Use existing mappings service to get client ID - const mapping = await this.mappingsService.findBySfAccountId(sfAccountId); - - if (!mapping?.whmcsClientId) { - throw new BadRequestException(`No WHMCS client mapping found for account ${sfAccountId}`); - } - - this.logger.log("WHMCS client mapping found", { - sfAccountId, - whmcsClientId: mapping.whmcsClientId, - }); - - return mapping.whmcsClientId; - } catch (error) { - this.logger.error("Failed to get WHMCS client mapping", { - error: getErrorMessage(error), - sfAccountId, - }); - throw new BadRequestException(`Failed to find WHMCS client for account ${sfAccountId}`); + // Deprecated: retained for compatibility if referenced elsewhere + const mapping = await this.mappingsService.findBySfAccountId(sfAccountId); + if (!mapping?.whmcsClientId) { + throw new BadRequestException(`No WHMCS client mapping found for account ${sfAccountId}`); } + return mapping.whmcsClientId; } /** * Validate client has payment method in WHMCS */ - private async validatePaymentMethod(clientId: number): Promise { + private async validatePaymentMethod(clientId: number, userId: string): Promise { try { - const hasPaymentMethod = await this.whmcsOrderService.hasPaymentMethod(clientId); + // Centralized helper; aligns with frontend detection and allows fresh reads + const hasPaymentMethod = await this.whmcsPaymentService.hasPaymentMethod( + clientId, + userId, + { fresh: true } + ); if (!hasPaymentMethod) { throw new ConflictException( @@ -172,6 +170,7 @@ export class OrderFulfillmentValidator { this.logger.error("Payment method validation failed", { error: getErrorMessage(error), clientId, + userId, }); throw new ConflictException("Unable to validate payment method - fulfillment cannot proceed"); diff --git a/apps/bff/src/orders/services/order-orchestrator.service.ts b/apps/bff/src/orders/services/order-orchestrator.service.ts index d2859743..2914dd5c 100644 --- a/apps/bff/src/orders/services/order-orchestrator.service.ts +++ b/apps/bff/src/orders/services/order-orchestrator.service.ts @@ -166,6 +166,7 @@ export class OrderOrchestrator { id: order.Id, orderNumber: order.OrderNumber, status: order.Status, + accountId: (order as unknown as { AccountId?: unknown })?.AccountId as string | undefined, orderType: typeof (order as unknown as Record)[fields.order.orderType] === "string" ? ((order as unknown as Record)[fields.order.orderType] as string) @@ -263,7 +264,7 @@ export class OrderOrchestrator { quantity: item.Quantity, unitPrice: item.UnitPrice, totalPrice: item.TotalPrice, - billingCycle: String(item.PricebookEntry?.Product2?.Billing_Cycle__c || ""), + billingCycle: String((p2?.[fields.product.billingCycle] as string | undefined) || ""), }); return acc; }, diff --git a/apps/bff/src/orders/types/order-details.dto.ts b/apps/bff/src/orders/types/order-details.dto.ts index 0294cb5d..bc14d076 100644 --- a/apps/bff/src/orders/types/order-details.dto.ts +++ b/apps/bff/src/orders/types/order-details.dto.ts @@ -22,6 +22,7 @@ export interface OrderDetailsDto { orderType?: string; effectiveDate: string; totalAmount: number; + accountId?: string; accountName?: string; createdDate: string; lastModifiedDate: string; diff --git a/apps/bff/src/vendors/salesforce/events/pubsub.subscriber.ts b/apps/bff/src/vendors/salesforce/events/pubsub.subscriber.ts index f2ad1450..d62dbe8e 100644 --- a/apps/bff/src/vendors/salesforce/events/pubsub.subscriber.ts +++ b/apps/bff/src/vendors/salesforce/events/pubsub.subscriber.ts @@ -19,17 +19,17 @@ type SubscribeCallback = ( interface PubSubClient { connect(): Promise; - subscribe(topic: string, cb: SubscribeCallback, numRequested: number): Promise; + subscribe(topic: string, cb: SubscribeCallback, numRequested?: number): Promise; subscribeFromReplayId( topic: string, cb: SubscribeCallback, - numRequested: number, + numRequested: number | null, replayId: number ): Promise; subscribeFromEarliestEvent( topic: string, cb: SubscribeCallback, - numRequested: number + numRequested?: number ): Promise; requestAdditionalEvents(topic: string, numRequested: number): Promise; close(): Promise; @@ -106,36 +106,36 @@ export class SalesforcePubSubSubscriber implements OnModuleInit, OnModuleDestroy const subscribeCallback: SubscribeCallback = async (subscription, callbackType, data) => { try { - // Normalize library callback signatures const argTypes = [typeof subscription, typeof callbackType, typeof data]; - let type: string | undefined; - let payloadData: unknown; - let topic = (subscription as { topicName?: string })?.topicName || this.channel; + const type = callbackType; + const typeNorm = String(type || "").toLowerCase(); + const topic = (subscription as { topicName?: string })?.topicName || this.channel; - if (typeof callbackType === "string") { - type = callbackType; - payloadData = data; - } else if (typeof subscription === "string") { - type = subscription; - payloadData = callbackType; - topic = this.channel; - } else { - type = "data"; - payloadData = data ?? callbackType ?? subscription; - } - - if (type === "data") { - const event = payloadData as Record; + if (typeNorm === "data" || typeNorm === "event") { + const event = data as Record; + // Basic breadcrumb to confirm we are handling data callbacks + this.logger.debug("SF Pub/Sub data callback received", { + topic, + argTypes, + hasPayload: ((): boolean => { + if (!event || typeof event !== "object") return false; + const maybePayload = event["payload"]; + return typeof maybePayload === "object" && maybePayload !== null; + })(), + }); const payload = ((): Record | undefined => { - const p = event?.["payload"]; - return typeof p === "object" && p != null ? (p as Record) : undefined; + const p = event["payload"]; + if (typeof p === "object" && p !== null) { + return p as Record; + } + return undefined; })(); // Only check parsed payload const orderIdVal = payload?.["OrderId__c"] ?? payload?.["OrderId"]; const orderId = typeof orderIdVal === "string" ? orderIdVal : undefined; if (!orderId) { - this.logger.warn("Pub/Sub event missing OrderId__c; skipping", { argTypes, topic }); + this.logger.warn("Pub/Sub event missing OrderId__c; skipping", { argTypes, topic, payloadKeys: payload ? Object.keys(payload) : [] }); const depth = await this.provisioningQueue.depth(); if (depth < maxQueue) { await client.requestAdditionalEvents(topic, 1); @@ -161,20 +161,16 @@ export class SalesforcePubSubSubscriber implements OnModuleInit, OnModuleDestroy topic, }); - // Keep sliding window full when queue has room - const depth = await this.provisioningQueue.depth(); - if (depth < maxQueue) { - await client.requestAdditionalEvents(topic, 1); - } - } else if (type === "lastEvent") { + // Do not request more here; rely on 'lastevent' to top-up + } else if (typeNorm === "lastevent") { const depth = await this.provisioningQueue.depth(); const available = Math.max(0, maxQueue - depth); const desired = Math.max(0, Math.min(numRequested, available)); if (desired > 0) { await client.requestAdditionalEvents(topic, desired); } - } else if (type === "grpcKeepalive") { - const latestVal = (payloadData as { latestReplayId?: unknown })?.latestReplayId; + } else if (typeNorm === "grpckeepalive") { + const latestVal = (data as { latestReplayId?: unknown })?.latestReplayId; const latest = typeof latestVal === "number" ? latestVal : undefined; if (typeof latest === "number") { await this.cache.set(sfLatestSeenKey(this.channel), { @@ -182,6 +178,24 @@ export class SalesforcePubSubSubscriber implements OnModuleInit, OnModuleDestroy at: Date.now(), }); } + } else if (typeNorm === "grpcstatus" || typeNorm === "end") { + // No-op; informational + } else if (typeNorm === "error") { + this.logger.warn("SF Pub/Sub stream error", { topic, data }); + } else { + // Unknown callback type: log once with minimal context + const maybeEvent = data as Record | undefined; + const hasPayload = ((): boolean => { + if (!maybeEvent || typeof maybeEvent !== "object") return false; + const p = maybeEvent["payload"]; + return typeof p === "object" && p !== null; + })(); + this.logger.debug("SF Pub/Sub callback ignored (unknown type)", { + type, + topic, + argTypes, + hasPayload, + }); } } catch (err) { this.logger.error("Pub/Sub subscribe callback failed", { diff --git a/apps/bff/src/vendors/salesforce/salesforce.service.ts b/apps/bff/src/vendors/salesforce/salesforce.service.ts index e3e48f59..cd024708 100644 --- a/apps/bff/src/vendors/salesforce/salesforce.service.ts +++ b/apps/bff/src/vendors/salesforce/salesforce.service.ts @@ -145,7 +145,9 @@ export class SalesforceService implements OnModuleInit { const fields = getSalesforceFieldMap(); const result = (await this.connection.query( - `SELECT Id, Status, ${fields.order.activationStatus}, ${fields.order.whmcsOrderId}, AccountId + `SELECT Id, Status, ${fields.order.activationStatus}, ${fields.order.whmcsOrderId}, + ${fields.order.lastErrorCode}, ${fields.order.lastErrorMessage}, + AccountId, Account.Name FROM Order WHERE Id = '${orderId}' LIMIT 1` diff --git a/apps/bff/src/vendors/whmcs/services/whmcs-connection.service.ts b/apps/bff/src/vendors/whmcs/services/whmcs-connection.service.ts index 0a0132ea..ac9959f0 100644 --- a/apps/bff/src/vendors/whmcs/services/whmcs-connection.service.ts +++ b/apps/bff/src/vendors/whmcs/services/whmcs-connection.service.ts @@ -32,6 +32,9 @@ export interface WhmcsApiConfig { timeout?: number; retryAttempts?: number; retryDelay?: number; + // Optional elevated admin credentials for privileged actions (eg. AcceptOrder) + adminUsername?: string; + adminPasswordHash?: string; // MD5 hash of admin password } @Injectable() @@ -50,6 +53,10 @@ export class WhmcsConnectionService { timeout: this.configService.get("WHMCS_API_TIMEOUT", 30000), retryAttempts: this.configService.get("WHMCS_API_RETRY_ATTEMPTS", 1), retryDelay: this.configService.get("WHMCS_API_RETRY_DELAY", 1000), + adminUsername: this.configService.get("WHMCS_ADMIN_USERNAME"), + adminPasswordHash: + this.configService.get("WHMCS_ADMIN_PASSWORD_MD5") || + this.configService.get("WHMCS_ADMIN_PASSWORD_HASH"), }; // Optional API Access Key (used by some WHMCS deployments alongside API Credentials) this.accessKey = this.configService.get("WHMCS_API_ACCESS_KEY"); @@ -82,14 +89,26 @@ export class WhmcsConnectionService { ): Promise { const url = `${this.config.baseUrl}/includes/api.php`; - // Use WHMCS API Credential fields (identifier/secret). Do not send as username/password. - // WHMCS expects `identifier` and `secret` when authenticating with API Credentials. - const baseParams: Record = { - action, - identifier: this.config.identifier, - secret: this.config.secret, - responsetype: "json", - }; + // Choose authentication strategy. + // Prefer elevated admin credentials for privileged actions (AcceptOrder), if provided. + const useAdminAuth = + action.toLowerCase() === "acceptorder" && + !!this.config.adminUsername && + !!this.config.adminPasswordHash; + + const baseParams: Record = useAdminAuth + ? { + action, + username: this.config.adminUsername!, + password: this.config.adminPasswordHash!, + responsetype: "json", + } + : { + action, + identifier: this.config.identifier, + secret: this.config.secret, + responsetype: "json", + }; if (this.accessKey) { baseParams.accesskey = this.accessKey; } @@ -105,6 +124,7 @@ export class WhmcsConnectionService { this.logger.debug(`WHMCS API Request [${action}] attempt ${attempt}`, { action, params: this.sanitizeLogParams(params), + authMode: useAdminAuth ? "admin" : "api_credentials", }); const formData = new URLSearchParams(requestParams); @@ -149,6 +169,7 @@ export class WhmcsConnectionService { message: errorResponse.message, errorcode: errorResponse.errorcode, params: this.sanitizeLogParams(params), + authModeTried: useAdminAuth ? "admin" : "api_credentials", }); throw new Error(`WHMCS API Error: ${errorResponse.message}`); } @@ -214,6 +235,27 @@ export class WhmcsConnectionService { for (const [key, value] of Object.entries(params)) { if (value === undefined || value === null) continue; + // Handle arrays using PHP-style indexed parameters: key[0]=..., key[1]=... + if (Array.isArray(value)) { + value.forEach((v, i) => { + const idxKey = `${key}[${i}]`; + if (v === undefined || v === null) return; + const t = typeof v; + if (t === "string") { + sanitized[idxKey] = v as string; + } else if (t === "number" || t === "boolean" || t === "bigint") { + sanitized[idxKey] = (v as number | boolean | bigint).toString(); + } else if (t === "object") { + try { + sanitized[idxKey] = JSON.stringify(v); + } catch { + sanitized[idxKey] = ""; + } + } + }); + continue; + } + const typeOfValue = typeof value; if (typeOfValue === "string") { sanitized[key] = value as string; @@ -224,6 +266,7 @@ export class WhmcsConnectionService { ) { sanitized[key] = (value as number | boolean | bigint).toString(); } else if (typeOfValue === "object") { + // For plain objects, fall back to JSON string (only used for non-array fields) try { sanitized[key] = JSON.stringify(value); } catch { diff --git a/apps/bff/src/vendors/whmcs/services/whmcs-order.service.ts b/apps/bff/src/vendors/whmcs/services/whmcs-order.service.ts index ecc9a1e7..c35c0175 100644 --- a/apps/bff/src/vendors/whmcs/services/whmcs-order.service.ts +++ b/apps/bff/src/vendors/whmcs/services/whmcs-order.service.ts @@ -97,6 +97,10 @@ export class WhmcsOrderService { // Call WHMCS AcceptOrder API const response = (await this.connection.acceptOrder({ orderid: orderId.toString(), + // Ensure module provisioning is executed even if product config is different + autosetup: true, + // Suppress customer emails to remain consistent with earlier noemail flag + sendemail: false, })) as Record; if (response.result !== "success") { @@ -180,15 +184,20 @@ export class WhmcsOrderService { } // Check if client has any payment methods - const paymentMethods = (response.paymethods as { paymethod?: unknown[] })?.paymethod || []; - const hasValidMethod = Array.isArray(paymentMethods) - ? paymentMethods.length > 0 - : Boolean(paymentMethods); + const paymethodsNode = (response.paymethods as { paymethod?: unknown } | undefined)?.paymethod; + const totalResults = Number((response as { totalresults?: unknown })?.totalresults ?? 0) || 0; + const methodCount = Array.isArray(paymethodsNode) + ? paymethodsNode.length + : paymethodsNode && typeof paymethodsNode === "object" + ? 1 + : 0; + const hasValidMethod = methodCount > 0 || totalResults > 0; this.logger.log("Payment method check completed", { clientId, hasPaymentMethod: hasValidMethod, - methodCount: Array.isArray(paymentMethods) ? paymentMethods.length : hasValidMethod ? 1 : 0, + methodCount, + totalResults, }); return hasValidMethod; diff --git a/apps/bff/src/vendors/whmcs/services/whmcs-payment.service.ts b/apps/bff/src/vendors/whmcs/services/whmcs-payment.service.ts index 8122ae6b..d3d0ecbc 100644 --- a/apps/bff/src/vendors/whmcs/services/whmcs-payment.service.ts +++ b/apps/bff/src/vendors/whmcs/services/whmcs-payment.service.ts @@ -24,13 +24,19 @@ export class WhmcsPaymentService { /** * Get payment methods for a client */ - async getPaymentMethods(clientId: number, userId: string): Promise { + async getPaymentMethods( + clientId: number, + userId: string, + options?: { fresh?: boolean } + ): Promise { try { - // Try cache first - const cached = await this.cacheService.getPaymentMethods(userId); - if (cached) { - this.logger.debug(`Cache hit for payment methods: user ${userId}`); - return cached; + // Try cache first unless fresh requested + if (!options?.fresh) { + const cached = await this.cacheService.getPaymentMethods(userId); + if (cached) { + this.logger.debug(`Cache hit for payment methods: user ${userId}`); + return cached; + } } const response = await this.connectionService.getPayMethods({ clientid: clientId }); @@ -68,7 +74,9 @@ export class WhmcsPaymentService { .filter((method): method is PaymentMethod => method !== null); const result: PaymentMethodList = { paymentMethods: methods, totalCount: methods.length }; - await this.cacheService.setPaymentMethods(userId, result); + if (!options?.fresh) { + await this.cacheService.setPaymentMethods(userId, result); + } return result; } catch (error) { this.logger.error(`Failed to fetch payment methods for client ${clientId}`, { @@ -79,6 +87,22 @@ export class WhmcsPaymentService { } } + /** + * Centralized check used by both UI-aligned code paths and worker validation. + * Returns true when the transformed list has at least one saved payment method. + * Pass { fresh: true } to bypass cache for provisioning-time checks. + */ + async hasPaymentMethod( + clientId: number, + userId: string, + options?: { fresh?: boolean } + ): Promise { + const list = await this.getPaymentMethods(clientId, userId, options); + const count = list?.totalCount || 0; + this.logger.debug("hasPaymentMethod check", { clientId, userId, count }); + return count > 0; + } + /** * Get available payment gateways */ diff --git a/apps/bff/src/vendors/whmcs/whmcs.module.ts b/apps/bff/src/vendors/whmcs/whmcs.module.ts index 2746aad2..4d4161e5 100644 --- a/apps/bff/src/vendors/whmcs/whmcs.module.ts +++ b/apps/bff/src/vendors/whmcs/whmcs.module.ts @@ -31,6 +31,7 @@ import { WhmcsOrderService } from "./services/whmcs-order.service"; WhmcsDataTransformer, WhmcsCacheService, WhmcsOrderService, + WhmcsPaymentService, ], }) export class WhmcsModule {} diff --git a/docs/PORTAL-INTEGRATION-OVERVIEW.md b/docs/PORTAL-INTEGRATION-OVERVIEW.md new file mode 100644 index 00000000..9435fd6d --- /dev/null +++ b/docs/PORTAL-INTEGRATION-OVERVIEW.md @@ -0,0 +1,150 @@ +# Portal Integration Overview — Salesforce + WHMCS + +This document explains how the portal integrates Salesforce (catalog, orders, provisioning control) and WHMCS (billing, invoices, subscriptions, payments). It covers the main flows end‑to‑end, what checks occur, and where the logic lives in code. + +## System Overview + +- Components + - Frontend: Next.js portal (`apps/portal`) + - Backend (BFF): NestJS (`apps/bff`), orchestrates Salesforce + WHMCS + - Billing: WHMCS (invoices, payment methods, subscriptions) + - CRM/Control Plane: Salesforce (catalog via Product2, Orders, provisioning trigger) + - Infra: PostgreSQL (mappings), Redis (cache), BullMQ (queues) + +- Sources of truth + - Salesforce: Product catalog, Pricebook pricing, Orders, provisioning status and tracking + - WHMCS: Customer profile, payment methods, subscriptions, invoices + - BFF: Orchestration + ID mappings only; no customer data authority + +- Key environment flags (validation schema) + - `SF_EVENTS_ENABLED`, `SF_PROVISION_EVENT_CHANNEL`, `SF_*` for Salesforce; `WHMCS_*` for WHMCS; `PORTAL_PRICEBOOK_ID/PORTAL_PRICEBOOK_NAME` for catalog/pricing. See env sample for full list (env/portal-backend.env.sample:1). + +## Identity & Mapping + +- Purpose: link a portal user to a WHMCS client and Salesforce Account. +- Persistence: `idMapping` table via `MappingsService` (apps/bff/src/mappings/mappings.service.ts:1). +- Lookups + - By user → WHMCS client ID (apps/bff/src/mappings/mappings.service.ts:148) + - By Salesforce Account → WHMCS client ID (apps/bff/src/mappings/mappings.service.ts:63) +- Usage: Most flows start by resolving mapping to enforce access and route calls correctly (e.g., invoices, orders). + +## Catalog (Shown in Portal) + +- Source of truth: Salesforce Product2 + PricebookEntry. +- Field mapping is configurable via env (apps/bff/src/common/config/field-map.ts:1). Important fields include: + - `Product2.StockKeepingUnit` (SKU), portal visibility flags, `Item_Class__c`, billing cycle, and WHMCS product id/name. +- Base query helper uses a “Portal” pricebook (ID or name) and builds SOQL with visible/accessible filters (apps/bff/src/catalog/services/base-catalog.service.ts:1). +- SIM catalog example: returns plans, activation fees, add‑ons; optionally personalizes based on existing WHMCS services (apps/bff/src/catalog/services/sim-catalog.service.ts:1). +- Principle: Frontend selects explicit SKUs; backend validates SKUs exist in the portal pricebook and creates Salesforce OrderItems accordingly. See docs/PRODUCT-CATALOG-ARCHITECTURE.md:1. + +## Invoices & Payments + +- Endpoints: `GET /invoices`, `GET /invoices/:id`, `GET /invoices/:id/subscriptions`, `POST /invoices/:id/sso-link`, `POST /invoices/:id/payment-link` (apps/bff/src/invoices/invoices.controller.ts:1). +- Service flow: resolve mapping → fetch from WHMCS via `WhmcsService` → transform/cache → return (apps/bff/src/invoices/invoices.service.ts:24). + - List/paginate via WHMCS GetInvoices; details enriched with line items and `serviceId` links (apps/bff/src/vendors/whmcs/services/whmcs-invoice.service.ts:1). + - Subscriptions listed via WHMCS GetClientsProducts; transformed and cached (apps/bff/src/vendors/whmcs/services/whmcs-subscription.service.ts:1). + - Payment methods/gateways via WHMCS; cached in Redis; also used for gating order creation/provisioning (apps/bff/src/vendors/whmcs/services/whmcs-payment.service.ts:1). +- SSO links: invoice view/download/pay and payment-page with preselected method/gateway (apps/bff/src/vendors/whmcs/services/whmcs-payment.service.ts:168). + +## Orders — Creation (Portal ➝ Salesforce) + +- Entry point: `OrderOrchestrator.createOrder()` (apps/bff/src/orders/services/order-orchestrator.service.ts:36). +- Steps + 1) Validate request, user mapping, and business rules via `OrderValidator.validateCompleteOrder()` (apps/bff/src/orders/services/order-validator.service.ts:296): + - Format: `orderType`, non‑empty `skus[]` (apps/bff/src/orders/services/order-validator.service.ts:24) + - Mapping present: user ↔ WHMCS client ↔ SF Account (apps/bff/src/orders/services/order-validator.service.ts:79) + - Payment method exists in WHMCS (gating) (apps/bff/src/orders/services/order-validator.service.ts:96) + - SKU existence in portal pricebook (apps/bff/src/orders/services/order-validator.service.ts:197) + - Business rules by type (SIM, VPN, Internet) e.g. SIM requires activation fee (apps/bff/src/orders/services/order-validator.service.ts:225) + - Internet duplication guard: one active Internet service per account (apps/bff/src/orders/services/order-validator.service.ts:166) + 2) Build Order header fields including activation fields and address snapshot (apps/bff/src/orders/services/order-builder.service.ts:22) + - Address snapshot always sets BillTo* fields; sets `Address_Changed__c` if user supplied a different address at checkout (apps/bff/src/orders/services/order-builder.service.ts:88) + 3) Create Salesforce Order and then OrderItems by SKU using the pricebook entry and unit price (apps/bff/src/orders/services/order-item-builder.service.ts:20) +- Result: Returns `sfOrderId` with status Created for operator review/approval in Salesforce. + +## Orders — Provisioning (Salesforce ➝ WHMCS) + +- Trigger: Salesforce publishes a Platform Event (record‑triggered flow) on approval. The BFF subscriber listens when `SF_EVENTS_ENABLED=true` and enqueues provisioning (apps/bff/src/vendors/salesforce/events/pubsub.subscriber.ts:58). +- Queue: BullMQ `provisioning` queue with idempotent job IDs (apps/bff/src/orders/queue/provisioning.queue.ts:1). +- Processor guardrails (apps/bff/src/orders/queue/provisioning.processor.ts:26): + - Only process when Order `Activation_Status__c` is `Activating` (apps/bff/src/orders/queue/provisioning.processor.ts:35) + - Skip if last error is `PAYMENT_METHOD_MISSING` to avoid thrash (apps/bff/src/orders/queue/provisioning.processor.ts:52) + - Commit Salesforce Pub/Sub replay IDs for exactly‑once handling (apps/bff/src/orders/queue/provisioning.processor.ts:73) +- Orchestration steps (apps/bff/src/orders/services/order-fulfillment-orchestrator.service.ts:57): + - Validate request: not already provisioned (checks `WHMCS_Order_ID__c`), ensure client has payment method; resolve mapping (apps/bff/src/orders/services/order-fulfillment-validator.service.ts:23) + - Set SF activation status to `Activating` (apps/bff/src/orders/services/order-fulfillment-orchestrator.service.ts:98) + - Load SF Order details + OrderItems, map each to WHMCS items using the Product2 mapping (`WH_Product_ID__c`) and billing cycle (apps/bff/src/orders/services/order-whmcs-mapper.service.ts:1) + - Create WHMCS order (AddOrder) with Stripe as payment method; optional promo code and tracking notes (apps/bff/src/vendors/whmcs/services/whmcs-order.service.ts:20) + - Accept/provision order (AcceptOrder), capture service IDs and invoice ID returned (apps/bff/src/vendors/whmcs/services/whmcs-order.service.ts:60) + - Update SF: `Status=Completed`, `Activation_Status__c=Activated`, and write back `WHMCS_Order_ID__c` (apps/bff/src/orders/services/order-fulfillment-orchestrator.service.ts:117) +- Error handling: On failure, set `Status=Pending Review`, `Activation_Status__c=Failed`, and write concise error code/message for operator triage (apps/bff/src/orders/services/order-fulfillment-orchestrator.service.ts:146). + +## Subscriptions (Shown in Portal) + +- Data comes from WHMCS products/services via `GetClientsProducts` and is transformed into a standard Subscription list (apps/bff/src/vendors/whmcs/services/whmcs-subscription.service.ts:1). +- Cached per user; supports status filtering; invoice items link to `serviceId` to show related subscriptions (apps/bff/src/vendors/whmcs/transformers/whmcs-data.transformer.ts:35). + +## Payments & SSO + +- Payment methods summary drives UI gating and provisioning validation (apps/bff/src/vendors/whmcs/services/whmcs-payment.service.ts:44). +- SSO flows + - General WHMCS SSO (dashboard/settings) via `CreateSsoToken` + - Invoice view/download/pay SSO (apps/bff/src/vendors/whmcs/services/whmcs-payment.service.ts:168) + - Payment link with pre‑selected saved method or gateway (apps/bff/src/vendors/whmcs/services/whmcs-payment.service.ts:168) + +## Caching & Performance + +- Redis cache is used for: invoices (lists and by ID), subscriptions, payment methods, payment gateways, user mappings (apps/bff/src/common/cache/cache.service.ts:1). +- Cache invalidation helpers exist per domain (e.g., `invalidatePaymentMethodsCache`, `invalidateInvoiceCache`). +- HTTP pagination/limits enforced in controller input validation for invoices (apps/bff/src/invoices/invoices.controller.ts:1). + +## Field Map (Configurable) + +- All SF field API names are env‑driven and wrapped by `getSalesforceFieldMap()` (apps/bff/src/common/config/field-map.ts:1). +- Key paths used in flows + - Order activation: type/scheduledAt/status + - WHMCS IDs: `Order.WHMCS_Order_ID__c`, `OrderItem.WHMCS_Service_ID__c` + - Address snapshot: BillingStreet/City/State/Postal/Country + `Address_Changed__c` + +## Environment & Health + +- Env validation schema lists required/optional vars and sensible defaults (apps/bff/src/common/config/env.validation.ts:1). Sample file provides production-ready defaults (env/portal-backend.env.sample:1). +- Health endpoints expose DB/queue/feature flags and Salesforce events status (apps/bff/src/health/health.controller.ts:1). + +## End‑to‑End Flow Summary + +1) User links account at signup; mapping stored. Adds payment method in WHMCS via SSO. +2) Portal shows catalog from Salesforce Product2 + Pricebook. User selects options; frontend builds explicit SKUs. +3) `POST /orders` triggers validation (mapping, payment method exists, SKUs exist, business rules) → creates SF Order + OrderItems with address snapshot. +4) Operator approves in Salesforce; Platform Event published. +5) BFF subscriber enqueues provisioning; worker validates, maps items to WHMCS, creates/accepts WHMCS order, and updates Salesforce with status/IDs. +6) Portal pages show subscriptions and invoices from WHMCS with SSO links for payment. + +## Key Checks & Guards + +- Payment method required before order creation and before provisioning. +- SKU validity in pricebook; missing UnitPrice is a hard error. +- Business rules per order type (SIM requires activation fee, etc.). +- Internet duplication guard to prevent multiple active Internet services. +- Idempotency: If `WHMCS_Order_ID__c` is set, fulfillment short‑circuits as already provisioned. +- Queue processor only acts in `Activating` state; skips when awaiting user‑actionable errors. + +## Where to Look in Code + +- Order creation orchestration: apps/bff/src/orders/services/order-orchestrator.service.ts:36 +- Validation (format/mapping/PM/SKUs/rules): apps/bff/src/orders/services/order-validator.service.ts:24 +- Order header + address snapshot: apps/bff/src/orders/services/order-builder.service.ts:22 +- OrderItems from SKUs: apps/bff/src/orders/services/order-item-builder.service.ts:20 +- Fulfillment orchestration: apps/bff/src/orders/services/order-fulfillment-orchestrator.service.ts:57 +- Salesforce events subscriber: apps/bff/src/vendors/salesforce/events/pubsub.subscriber.ts:58 +- Provisioning queue processor: apps/bff/src/orders/queue/provisioning.processor.ts:26 +- Invoices service: apps/bff/src/invoices/invoices.service.ts:24 +- Subscriptions service: apps/bff/src/vendors/whmcs/services/whmcs-subscription.service.ts:1 +- Payment/SSO service: apps/bff/src/vendors/whmcs/services/whmcs-payment.service.ts:1 + +--- +For deeper details, see: +- docs/PORTAL-ORDERING-PROVISIONING.md +- docs/ORDER-FULFILLMENT-COMPLETE-GUIDE.md +- docs/PRODUCT-CATALOG-ARCHITECTURE.md +- docs/ADDRESS_SYSTEM.md diff --git a/docs/PORTAL-NONTECH-PRESENTATION.md b/docs/PORTAL-NONTECH-PRESENTATION.md new file mode 100644 index 00000000..d11f1c6a --- /dev/null +++ b/docs/PORTAL-NONTECH-PRESENTATION.md @@ -0,0 +1,167 @@ +# Customer Portal — Simple Overview (Non‑Technical) + +Use these slide-ready bullets to explain, in plain language, how our portal works with Salesforce and WHMCS. + +## 1) What The Portal Does +- Purpose: One place for customers to browse plans, place orders, and view/pay bills. +- Connects two company systems: Salesforce (service control) and WHMCS (billing). +- Goal: Smooth experience for customers, clear control and visibility for our team. + +## 2) The Two Systems We Connect +- Salesforce: Our “control center” for products and orders. Staff review and approve here. +- WHMCS: Our “billing system” for invoices, payment methods, and subscriptions. +- The Portal: The “bridge” customers use. It talks to both safely in the background. + +## 3) How It Fits Together (Big Picture) +- Customer uses the Portal → chooses products → places an order. +- Portal creates the order in Salesforce for review/approval. +- After approval, the Portal provisions the order in WHMCS. +- WHMCS then holds the subscription and generates the invoices customers can pay. + +## 4) Catalog (What Customers Can Buy) +- We show the catalog from Salesforce so prices and products are consistent. +- Products are organized (e.g., Internet, SIM, VPN) with clear names and monthly/one‑time fees. +- The Portal only shows what’s approved for online sale. + +## 5) Customer Journey (At a Glance) +1. Sign up and link your account. +2. Add a payment method (credit card or gateway) — one‑time step. +3. Browse the catalog and select a plan. +4. Place an order (Portal sends it to Salesforce). +5. Staff reviews/approves in Salesforce, and the Portal activates it in WHMCS. +6. Customer sees subscriptions and invoices in the Portal and pays securely. + +## 5a) Sign Up & Account Linking (Plain English) +- What we ask for: email, password, name, and your Customer Number (Salesforce number) — this lets us find your existing account. +- What happens: we create a billing profile in WHMCS and securely link three IDs together behind the scenes: + - Portal user ↔ WHMCS client ↔ Salesforce account. +- Why this matters: from then on, the Portal always shows the right invoices, payment methods, and subscriptions for that customer. + +## 5b) Address — Where It Lives and How We Use It +- Required at signup: we capture a full billing address and store it in WHMCS (our billing source of truth). +- Always available: the Portal pulls your current address from WHMCS so checkout is smooth. +- Snapshotted on every order: we copy the current address into the Salesforce order so staff can review what was used at the time. +- Internet orders: we ask you to explicitly confirm the installation address (technician visit). If you change it, we mark the order “address changed” for staff visibility. +- Updates later: when customers update address in the Portal, we sync it to WHMCS so billing and future orders are correct. + +## 5c) Payment Methods — Why We Require One First +- Fewer failures: we only allow ordering after a payment method is on file. +- How customers add it: the Portal opens WHMCS’s secure payment page (single sign‑on); cards are stored by WHMCS, not by the Portal. +- Provisioning also checks: even after approval, we re‑check payment to avoid failed activations. + +## 6) Ordering Flow (Simple) +- Before ordering, the Portal checks: “Do you have a saved payment method?” +- The Portal sends your chosen items to Salesforce as an order for review. +- After approval, the Portal creates the service in WHMCS and finishes activation. + +## 6a) Business Rules We Enforce (Simple) +- Internet: must include a service plan; installation options are clearly shown; we prevent duplicate active Internet services for the same account. +- SIM: must include a SIM plan and a one‑time activation fee; optional add‑ons (e.g., voicemail) can be added; for number transfer (MNP), we collect the reservation details. +- VPN: must include the VPN activation fee; regions/options are chosen up front. +- Product validity: only products that are approved and priced are allowed to be ordered. + +## 7) Billing & Payments (Simple) +- Invoices: Created by WHMCS and shown in the Portal. +- Payment: The Portal opens a secure payment page (SSO) directly in WHMCS. +- Subscriptions: Ongoing services (e.g., monthly plans) displayed in the Portal. + +## 8) Built‑In Safeguards (What We Check Automatically) +- Payment method required: prevents failed activations and billing issues. +- Product validity: only approved, priced items can be ordered. +- Duplicate protection: e.g., avoids ordering a second Internet line by mistake. +- Status tracking: Salesforce and WHMCS stay in sync (Created → Activating → Activated). + +## 8a) Behind the Scenes (Safe & Repeatable) +- Approvals: staff review orders in Salesforce; on approval, the Portal activates the order in WHMCS. +- Single sign‑on (SSO): the Portal uses expiring links to WHMCS for invoices and payments; we don’t handle card numbers directly. +- Clear errors: if something blocks activation (e.g., missing payment method), we pause and show a short, human‑readable note to staff and a clear status to the customer. + +## 9) If Something Goes Wrong +- The order is paused with a clear status (e.g., “Awaiting payment method”). +- Staff sees a short error code and message in Salesforce to resolve quickly. +- Customers keep seeing clear status updates in the Portal. + +## 10) Why This Is Better +- For customers: Clear catalog, simple checkout, easy invoice payments. +- For staff: Single review step in Salesforce, automated activation, fewer manual tasks. +- For the business: Consistent pricing, faster time‑to‑activate, fewer errors. + +--- + +# Suggested Slide Deck (Titles + Bullets + Notes) + +1. Title — “Customer Portal: How It Works” + - Bullets: One place to buy, manage, and pay. + - Notes: We connect Salesforce (control) and WHMCS (billing). + +2. The Systems + - Bullets: Salesforce = control; WHMCS = billing; Portal = bridge. + - Notes: Keep the mental model: control center vs. billing system. + +3. Big Picture Flow + - Bullets: Choose → Order in Salesforce → Approve → Activate in WHMCS → Pay. + - Notes: Emphasize approvals happen in Salesforce; invoices in WHMCS. + +4. The Catalog + - Bullets: Products come from Salesforce; only approved offers appear. + - Notes: Ensures one source of truth for products and prices. + +5. Customer Journey + - Bullets: Sign up → Add payment → Choose plan → Order → Approve → Activate → Pay. + - Notes: This is what a typical customer sees end‑to‑end. + +6. Ordering Checks + - Bullets: Payment method required; valid items only; no duplicates. + - Notes: Prevents surprises and support tickets later. + +7. Billing & Payments + - Bullets: Invoices from WHMCS; pay via secure SSO; subscriptions visible. + - Notes: We never store card numbers in the Portal. + +8. Status & Errors + - Bullets: Clear statuses; short error messages for staff. + - Notes: Faster turnaround and fewer escalations. + +9. Benefits + - Bullets: Better customer experience; less manual work; consistent pricing. + - Notes: Close with impact on activation time and error reduction. + +10. Q&A + - Bullets: — + - Notes: Keep backup slides with examples/screenshots. + +--- + +Tip: Pair these slides with a simple swimlane diagram (Customer, Portal, Salesforce, WHMCS) showing the hand‑offs at order and activation. + +References for deeper reading (optional for presenters) +- Address flow details: docs/ADDRESS_SYSTEM.md +- Technical overview: docs/PORTAL-INTEGRATION-OVERVIEW.md + +Diagram (PNG/SVG for slides) +- Swimlane visual: docs/assets/portal-swimlane.svg + +--- + +## 11) Migration (Moving Existing WHMCS Users Into the Portal) + +Goal: Let existing customers with WHMCS billing accounts start using the new Portal without losing history. + +How it works (plain English): +- Check your email: if you already have a WHMCS billing account, choose “Link account”. +- One-time check: enter your current WHMCS password once. We only verify it directly with WHMCS to prove ownership — we don’t copy it. +- Auto‑linking: we read your Customer Number from WHMCS and find the matching Salesforce account. Then we create your Portal account and link all three IDs. +- Set a new Portal password: we ask you to create a new password for the Portal (your WHMCS password stays in WHMCS). +- After that: log in with your new Portal password; continue to manage payment methods and invoices via secure SSO into WHMCS. + +Why setting a NEW Portal password is better than reusing the old one: +- Separation of risk: WHMCS and the Portal are different systems. Separate passwords reduce the blast radius if one is compromised. +- Stronger policy & protections: the Portal enforces modern hashing, lockouts, and audit logs tailored to our app. We don’t control WHMCS’s password rules. +- Least privilege: the Portal never stores or proxies your WHMCS password. We only validate it once during linking, then discard it. +- Future flexibility: lets us improve Portal security (e.g., MFA, rotation rules) without affecting WHMCS. +- Clear SSO flow: customers use the Portal to reach WHMCS billing pages securely without sharing credentials. + +Simple talking points for the migration slide: +- “Link your existing billing account by confirming your current password once.” +- “Create a new Portal password — safer, independent, and future‑proof.” +- “Nothing is lost — subscriptions and invoices automatically appear once linked.” diff --git a/docs/assets/portal-swimlane-1600x900.png b/docs/assets/portal-swimlane-1600x900.png new file mode 100644 index 0000000000000000000000000000000000000000..b7739d98f6c25d66afa2aa52c1ebc657fd5798df GIT binary patch literal 113935 zcmd431yoes8!tSFjs=JyEuj($(xo6F0@8{wbVP|8LxT*ZtQ0zV)qv1q=2$d+%pI`Fnon_&-;AN_d6(3J3%ul$DWu0Rn-= zK_L9Mm%zYZ4i!(*fFGA%$!OYvKpb~)-+0cMVvZmX14vf#v8wavYR$z+2xRoMwd1I} zBVLm?AB#Q0iV6?IE^1eG`h29~G9-G=5KC5{_?(*oOmH{tT=)$sNpZY8sVxr|bRf@f z+#tIob=MH@y~x7I{<=0cv6AfGi@^=um9h-$2m6V3$Zk=rM;CToDC@l>tq;SczkU%3 zSq9p8<4F*ofBcs(Nm>G80^+}pz2uYQi{}G;{xRBtOC0z4+r2NP5rHp(FNw+i>uvsV zlmClTf-n7bH|HM@)Pw3lxBh*B|2p=cqy2;^8E~J!N$R}vMf~%?=k4D`yKLZX;Qbe& z;;#HT`rpU?bM!Bf{2!jf-#7W|)czsv|J9kvbP9@RA$08e4jx*>fk4j#OExv=j(Y*6 zEujU0U{5i4AWL7A5wO2Vs($ip{YRGba=dn$sJI$K5s)}sTI;T2qySwz>Aj!BFM`A| zz_s3^pVn~lBcrxL!$x6SWo!7LoI#nZ&_2m4Fx(hCP>&;U!6#;@FivlL*+C%Ed$=io z{uehpPA3V70Rz)!2F%P{c$5g_jY?kwfqtC~2&9nF^K+4ZxdN;W0x`cZ7Y2bwgHiaP zPiwee|1-m%Tl#e=?kMZYLEip1e%}4R$N#^%Cfs)Zwx-{5`@QR5yZF~#6QC3_K);0d z>u`RVBM1~LlL`puZ*n3){gTrI)7B17KDOerw=Lt9`=3x@ab>fyLKmR|s|0Ijd5LSs z0=VNKqH@7g9@mZ1cK)`Q_9*DG$T#svlrqD7;f1~k~}^X_AyrDh6=9FV9x=k;s!Uc)=G}6 zbcVe!z27cStUe!`2^C0KWze)Aj!?M{)2nl_DYepWjuc|+41R26nw`*g3bwnl$2=h{ zbn3~}y)(8|svVx(Zh==EjTGGWDYV{s8Q7XA@&aYz~+`4PD7DF1>@ya-}q;J7;I+iq~F`_ z@Kc4+n9pZ@k9H2SS4XGxHm5&~AzQg3S1pYmbmb5nmM&TujcXrb5lPO}Oo*rz^*BMj zupx*~Nw&$luVd8I)%khWr|EH!N}K+@5HgPt>*PNEay?#arB#txpM52rPz%%hx@MCx zVO2GKf|__Z)dAFVt0%G6_?9_Z@l+$ zH}x!rb(LeDLYHw-;)We}8qv!I?`Ytg!n8G#m*}*N#&ZT2MfrL-LfqHFOb2BZk#YDb%t%UW( zI|nGaUcxqix>=@nCz?MUp&m7`ub*x!jt*O|e4!;IR!*d3Wh5WQAK~ydBpH1yf&S*I zv=K3n*$1P09Urw^Q-22S2zxVyLhf?}CU8}9%Wd@XyU&aYh(zmujOP*}U#kkPuOp(P ziN#jtvc=s)z@SPQ-P(m5(b;{mskYgRw7OIIYIy^Jr3&3fbT z*!}Z-6+X^DVBF&5$O#S4mGCJay+NX@>a=vEk}283pEKGeA_CLvLA@({BXU=nc}F=F zchtV+i;c}GLV_EkLflq$9Sm!nE|%tr@D)bH&CoDVhqNKH##9syDefG<&&)o4P zVbvu`1wq2>N2_;6!ofX`52|IbkhMbQlI)hz$-->z*#nFqJz5#8h;n7qji; z;_uy>S8yaC1|0j|XdwUH8FXf4(+-mV9YQLojnAx8CjbOa-lOLgflf z*DLRwP*$T3HWOPbU97Y^2Q=J-Sn(7B3CfHWnH-yAgmW zcDSDx?TG2I?f9qDo9kZusf;I==yTeRX>Xad}%ZoNJttCwB!673X`@n{YLv`Io-lyZ|_*q_MaJhTCdI>xJ zlMjjWr8P+p$I?i$f|&!TJM5jjMeiKNzu4zJ=%{v{k=+PF-RyPLd1mM#t#?80kUy+{ zg+Gi9F7>!?o66>Unh_dn;ne`dG2}SducXtWh)-+nd9DOa#{MAi%#@dr(}!QY3FOtYRv7finOPQfLO65yyls|(j>^1 z^aXlG9IJNy&IQ1S*O)Ryj4=5QoPMu ztx!yn*VD=s4fN-AS4RiEmxdG5`XSJS(Tg#kU-T(dWfTe20e=cqKya-nA^H|xpLhQ>S zSjHa1YGF@$i%MuTc`XT1Tfcd_G3vC78Zc&d&5jFMH&naby-Pdf<*@J;3{x~$m0sG@ zJR3ZeF;!TcdGcO4?L(ncpd|}RsEA=>b!xq4vDTbeokwLOeV-eb65#_{$wO^yn1h7# zHRzTvjJ(yXgm=lPvY(Ftsm~HQ810;Tmu+1-qN_nAB}MmaEtbMzg*1Wp*6qeA=Qbip%n`4< z>4goC63M7lbkY?4Yc(f2wF>zq`bcNPn-nHHLS5)-Q%crVX5vMQh9bKrBM;27r4iG+ zbW25EiIx>~{&e{JqPv>@^m=2_BH~DycJf1w6^+CkxnxIOa+ToS9L=i1J zxYo3%-xZt=yttpB4w+8n63^&I>_)-b$&fm>gPqhE9VsIod`45l8yhKGYJK`1S*Tk< z=%9QajmW36K?_QT=&nYxK_T)ad|jiJT_G0gcKe9Peis5_;CyfyAc}lyUC+TQ-@||G zN8fr|)MYMCQRk5hC99y4JGRYg1EAjV7FRvrVqWpYJ4nw+sNmWa#ph#5YCJdRFJRE$ z2UZ;Mb`bJc1dPYRDQ=N*LxA{yOY^ivsjQQRA zi7TAMS%`DghH%STpN|--7-_pHz;)S|g;LT)!#q4^b~8kIp+#}@STY7|T_eh?S24qE z>#C?1ewE1J_B#|>58t@djB;4-%VVF`6S(jj-Ph74Kl-Sb0!kW@eG#(xdrGdJVQ9m4 z4lYWoJN+o}`wEOPe1+lB7KStAWc!`^Czz$8CX$$MuPbx?gOTs{y5^=z{i~3#QM4s^ zGvq}2br03T9*pwxvKo3XCf>b1U*h86?xwUILB-I;5Hh1a&B!ZmxR5c2O2AFzn+DQkX$}w=uKalg~+moWIFUcSPE?kf-1Ry z{rE!Kl z_jEb25b`5}PMG~_pCcss0PI)CegaR(vKKwJm7dME*PESRK7Lgin5-`Kak5LQ`N1g7 z!f`@@eX=e#+DZX9ao7i67-_kQjkzKrd}cR5Li%LFu=vr~x?#n&2tL%&20zn@W?D2{?hoXeyJSl=G~&GFziN z=xe0AD=w!otFzMUlGr>+#~axAinRN5^@8>Y39_JfmiiNam_0s%SN%APKD*d%z9RoX_ZHhnPuHJQ6ETorY&mEtTD*f zyf3$!T!UIrr|O1cN0#g5FUDY*9faYBIyDFnen!bYyZ`-DbH!`jk-bi&a7#Q~8Xh-n z3_&5MD+DUU+WM853ezs%f_k4v!}}~O()bvM1Z*8R7Iepy-> zI4FgqmI$mYJ|keeRed@PqYY|UM6>;P0Srp8Nk~lFeH`e%(Ny5`t^D>KDQt$vP^_W0 zMx%D6xqe0vkI>jzw)M33BxsXO-rm|?5mDG~Q6b7XsMchom`F++(d5(WxY|)@^p@sM zR8GH(?e>Klee6PD+Nv{j{NASC&T&>RuF@hmGcTuM8!tta=()yHd3B6GN>5O7fG3o5 z1TWCpvoFyQv=W3Gt2TjbrR@;>w+s)jt5+b}h|nH);_%Y)gwEnM>@Epr-@E3-PsxLTK#y^68XTjXWoyf2_(uLNOAYfS}f)pRq>?NlDx ze!XYuZEl#ef5qcjyunLvt}qDocIQs6sO*sC2DVoiup za6}I?CSlHU125pJ3byAya+SpJgPzIC$I?!Hl{9|GwHtucHu!pk#&6vxl?qv6PS3eF zP2R%Z4(ctR8uedvklX5hg+?tMZqm5!-Pm`0)-7N1Q2Cstht8}+Xa0%>Q{j#c)h!^E zk*PZ|BGL%%TuQ( z8I3wI<({1W>hH=E%-(KYqrRG9d)oQHQ&B09$id7mdiPEm$zb9Un*%54Ej*{@P1ij9tp1c$JPIEWhderERe+F zTAr#a;FkFsG6bmCdyU*)mz)bDSLadiEoQzFrzh63Xv`jetlZE-|HvUGO6-kt z={xYix3|o(#Fh=@{NiI5B!YF_J#5U0o#0hN&2F5{ZO^XC?|dCtxbLt3$UJ3S=#~%~ zF*iXtj}kLEwlj5w_RaxqS1c!TDT4Xhs@pB1;lk;urv+zB+19$yt_HaEEWHt zT#YgRP5_?Vv*SFUndAnkTlkVkcSNG*D_h^3=1YbI2Ik-u-G|zRs|6&$coe820?KzF>k&zHBor!-0cKvt})uC_)C^scazZNX(tIYQ5YaS4}vsKKINuv z2h?fIa7WpS|0M~aVth^urCr%#$vErpNMTzmsUTO3XL{b!@E|V;; zl5Q4WKle(OWAZLXJ7|;C1hEFMLM0`ZqsHUQ<62PeTSHu}0V^6-Ctn&}_P_Z;k#H^A3x8$s;EQV@PjdfU{yP8Y&h?*Gol`N+-Hbd{bc+86G zX$qv&7V$gXaEh79Rucy|Sp8$5%9MHNt1ImT{Q%LsdVekbRJf6Yx|%0!v0uZK#d`BZ zZs=S)`!bEm`^h_^vRChyQM%vQ*A#V3ig7NT+HwvcJDvPlN&9xJQaNsJ^0i04D=bY; zq)JkcWiumfWR#>WNOjNjxd#yU4aaiOo93&s z+gl0w8O%q=-3nkiYQGtTDK21CK4Z~7%WPYBs4Ukxl-y0iSo7A7>&vS*$&=J&Wf_}wvr!HRh=k>^U|m_Zy=(=5G&Rm2>r%1 z$>g0^)?-ub-JrNc<1xUnJzpy^m$SB~gZ-L7UR4N7X{4>Gg3A#dzqoyEn-HhaHESLG zpULg5Asz=68NtlQ2r|SeO}ke?V5uV^!o;IS6~UBe17sD0VJHvfAh;i18n+C#Pzc#$ z>7_Sz6TRJQ2?OE-+5J;zu51F*hn#x7)1#86HWMl{S@*{k7--e>S|If-)^p?K5tHP9 zKrs=$Zy5&JHiisRWh1~D=Ki0Usf%Z>20c~$5X+{o!=B0*%`EKVuNTz__PgmsC{F!p zpzn!qLb&45Nr%>TJ=JlD+(EFH{Z#27)#htAFRs0d3WW2g+wqLc)^FP=83I_%y$?jj zcxQmzq$iJY^6A10r&>kXvFpk_(+e^4_N|sXC7eiUyli#N zNT6=5U|Exo@4sOdM+I(SrSsZdX};k^HVd7mU~< zAdXv@oqr#p)jtDk435Mj;oZF&&Y^V~mmNI8=r``Fzt1ia$}>?W)vEji)kpXB)aZq* zjH;oJ`(9hrL1`e$_}@@YodhhHa9zx@me?Sw{3Bd3(?fMju`=&`A|h(-NN!W=RXV!o zJL-#;noh;Emd+vBN1>q+z?ldVF>9X}vGgvl_%KPXzM)Sqo3>=iS%Ze#hR>FM`3S!i zu5zxEerGf@F5v+7t6=U^abnMbx_&3i7|%O?HS0qcGqmig(XmCK(aBCO$@k+q5ZdMD zSHD$ywOz2NQ}x$~2G0E{de-`W0KB+_#{yC*s?t1Xt??QXN}XL4UQmBlca-3+kA^pMjIA}y)ib2&1$BY^Q53z5vJrfWwL3zDMeF-h zGz_RCqaitAV%F4j|M<2|NYwPRx#QZ9LXs9A$ul=anPdML@cp_AG1>>u@sZ%yihE<@ z*3?!ivk>YJ0A6WZeieV$aL8Duc{x~xlr`y&6Gcf?J_S&yNBiGU9RO)2X=|LiQob3g z%y82iGYGA14GpcIe#RQ9>Qo7cKcl<|ahJQI_h71tP|@Jn@==V!i`#9>&Y#*nwd9rq`g5Jn#7F3WD{a(1gpp={{h;A=}qvGozeUms~${X6j<(Xp+GB zBI(vbTGwqFGYg+!m$iN%e&p@8@rtXOfL#mgJ@G^7YIHm-P+4 zDPhu#Dn`_ww24FQjjj9w*&CZ$rg_8*xRKeZkbB3U$T0GY%7D}r?Is1c!mne zI20{3wN#i}Ic`HyW|fiAlcJyo%Sy?>PZdW}H`@V8HSa0&b-C?A39ZX)-U?^j&-)5e zCJPE~C7ckts4|NWhpMN~_R>;E)aW%)GT{1OpM(fQW2KP_s&8b_nP24|$zDV^wofI6 zO&?7IV2v&ONXJmmOa2KzQOiyB*B#6&)m09#@7nI+w@;Akkb*Hodv?(tEg(V^%r>df1?AiL-S#0HQ>a$X80MHHfKQD4aN5BUmKcr19GEFnxOT zwf)m`{$!XirFk0S2^;2IJBsTvi7CS8vE4-~UM2+0VU1Sj8W7M3E-pZw4F71n5 zvj}VtHD&yR3lO`Ux7x-nZm+}#1YROtj84$Qqd-ad2!^oCjCcZi^-aC&_>vp@{Q8$4 z!1S^C-x32oYtTVqmG9BVjX~K*N;=4s;W6f~UFpVKKhAJb{E5RYMWrDQZS`G4^|6%W`W!ek}`PkeGQaac((!3nJGyyzUCE0r57rV>_K3RLPUjk^PipJ;7 zFeG!XF+}CEg2!o}0mG1SkD$1{b%}@>=vP(wxRU84jIMm5mW*3G(Uy(951T%jYCpj~ z17A4dkJ9PZE4ypOga0im6k2pUDEc}Hrg^-u?|AAV`n_BPcXlg+{Ue_$v!7eY#6>rGoR%|*R@Syd@QVy2EUEZ<`| zu;A9Q4(9~?H8*>1x1X5+%v(m@LH8a$pQf8u_H5T(rzmJ&oC0TSI$92GSTkc})ON+K zhFU;8!>bkH5Ammk-3u>AK_smEIr5?L&j4^sVey-gSACG$x+&Yqp3dNVsNKrWgzkbc zFO${!#^I?6WgcqeQ*1!0wLEhzf48hVlS8 zo{ZQy%3g$)UwkKytVS9o{Z5P`R)6bgxRa`cF8Q^9@~m_ejU)W)R1Kg5`-{|ic43Qd zks-Z>tph`fn(JA*;(sbrrM4V?T3f}MuDqQg?6a!Y`uecLTGsLTcwG%{XFcDTsw(-2 zH;WQAK)sBQd>cpCpCP}|n`E(Ww`M@5Ae2@UJpLt`dIZ5MKK3QwBT_T1eq!R~BQZ6T zwEfmyrwA^u*GoW+aJ-NP_B+$rk&s|+ij-<(iW_y(%_)aj8s<$zSl7cxHXB>rxx{gG z!Ib^CY+!6v`e0lik2f6ATsmr_{GEoOx0|gKWP6n@cyoQ#p~H{Guf)URQ@`>4hH*3Q zzYDBKH1=eq%b0a$-<8_|bHQ>v!3T@ZC1;-ee!SvoNI(@xJoJHdyezhGJzk~nxql9If|ZZ$XAXi(GCSu17D3MkiEc}R5YG&-zSiWZ=OAXWl3G!re4 zzP&!`I5rk2$>evc)+aw-fhdg9p-w2TeO7FDWv$(OW7i@quWC`0k(bqeZB;~kvq8*Ks-Z-I&5y_-xJX}aMjYp8D z3aQ;SR9_HXRnaUcF4rL#PRWpIk;^O2Y8P}rJ?%ESxiVNC zA?d20D5gc*H-1Rfm{n>WIJmo2@|+?#yyBKf%Dclif5eaV%j(fJ_>TGfw0yZQc+&9P5)wtZSGV^A36z?piR}WfpYXlJcE&9m5uwWT}^|dDbFG zEDJCA?ni4$P>()C9x)vy))5=p)2BgrPidWm1PFgr_A5nH8K0#rA_^B5zH=)Z;y`lO z4EDiPLODu!;0k;_tM7uBUQveI{Ba>rik=(pX8Bz1u~7y@8hL;8|v{Zi0|8SR4S~m6>rv{Af>xouMx15&8O&@!j&!d zy~%a(r$v6x%kcY8BKW($p=c72=3?P-1Qk(Z2(PaGneAIa3GvyH0_01!+KM}Ixs=yGLiT;J zsA?KAYSnz@JL=p(CS%n(^oBRkMaA_|uY$fvUYW{i++8}&MysGXV!}^joYC3Ndx-H*a7`FXQni+0=55R^nClwT4^wueRh1^nWcj`gyH|k z+#7c!KqJDjnYf0}fpAzPj)_#O{)@H*usi;$t^2A@rCU-(T?!lh-PUt&Io6Y`%FCBVvlUGehs1rV;0^9SYVC;#a0%lgfS`Za?; zA&NJ~Bw>VY2p=?HnemR_;`imhNk7jcN^y(N=!h*eTpNj)H;X;ASm|sC)B$;G1(iIH zzYBX5&GL&G^#_xx^zl!>+!iQh0X?gHz}~((R@{AK?TiZaN$n1MB(oe%$oIceqr_pq z!R4PctAEgqC>a3W*8d}d(m$wQ{~&VVCj0-EH1+42a4PZ>QvVOR><9_9vNlC*IxhSph{z~M+=?89(KZsnoHT`Dg{UUz-y5iqw_@Aoke=8o2 zCijb}@*jKnImd$Ag}>OtUnp|F>;IoF36 z(@cK*qW>Fa^2@OP-4G4hB?0E{Uwzrn#r{_E|IM0!OMiiw|1sVF+QXk7^#LTS4IS{*Q?DxMLss_%qu-KcE0R$SCHo%Jk<0i z2kBefUVoEEaa_}1TAeqrC+B2m?O%dO?zGbHDgzf+1h*nT1TV~c-{8gq+OR#>7W%CU;1 zr{EX{Kh~#5@sGAGJ~1g|;MVAotfQfeN_JEdOq+;YTZ_R`CCo?Ae{bG6MzK4aEXBUUqyx^N1wz0c}%iA ze{()Wg?KMMo8(gozsy^jC{Cf;8*d@$-WV?IPn?`$jwlq$m%w0Z+(MQxHlHo_`?RxQ zRl)P)`)+af`b`r~E)p^7*>$}`kDzY`_bhn!)F3s>on8DFP*&rnDeXGNh*43SqmGKK z6KGOrF=zG5BX^-5tKsqri46>@re|GVbD^R>>RuK!zcBR<{0+3927$g4gn2(DC1fjnC;E#)QRY8(ixn?i%5#lhk;v4 zMgrD=JlyO4vkV_2^W51S%-!$VcGQ`PH(k~Tzko(u%S${wCYarn%s4f=-cf-<8Slt~ z|3c2b2=&g{df68lXX-XhWVZsl7HR37!}{3&1QKVW{-$N;LFxK;(}gbG)MmSFf#Gl4 zVSZmNymKVdckispsrIPG;Jt`?pn)$b9n9*@VP#+JGJhBhXtb@pGxm<1@~m)2flI)X zkhA0M?)iM1r*S0^O`tlVVR(r5gd2DonrlJNKFKB1h=TWJAAy}p+sWQT%#fL8{E0Smhi^!Y z!Lr_~po*jS7{%pS*+En982xe>ZV-=?>j^S zAp7j8(Kom^}XaTqCMgw$BG*6-l$*lZ6w1d|p z+cJbXz0s>KP{@Omr|$M`Xx4m9{b~z#~2xigg7h zIV6Cis?l0Sbs$41{ti?Z@o=HYbiSXnj(xvWMC_!^U4ZMjvievtYgYvsU*<+APsuPz zkYcdzwrXPcB;cuHF*aF%(|*-*OVEbDy&oMM%#PV*lRu%Z)dt*e((OddGnb&3T`EZ3VG1

pD*v?fANSSi~l9`~TqeYUs-r=Ng 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 S7&JjZ4(>ntZP_=cFa0kT(8{g= literal 0 HcmV?d00001 diff --git a/docs/assets/portal-swimlane.svg b/docs/assets/portal-swimlane.svg new file mode 100644 index 00000000..6562ba8f --- /dev/null +++ b/docs/assets/portal-swimlane.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + Customer + Portal (BFF) + Salesforce + WHMCS + + + + 1) Sign Up & Link Account + Provide Customer Number + + + 2) Add Payment Method + Secure SSO to WHMCS + + + 3) Browse Catalog + Select Plan & Add‑ons + + + 7) View Invoices + Pay via SSO + + + + Validate mapping & address + Create WHMCS client + + + Open WHMCS payment page + (SSO) + + + Create Order in SF + (snapshot address) + + + Provision in WHMCS + after approval + + + Show subs & invoices + + + + Review & Approve + Order + + + + Store Payment Methods + + + Create Services & Invoice + + + + + Customer Number + + + + + SSO Payment Page + + + + Selected items + + + + Order + address + + + + Approved + + + + AddOrder + Accept + + + + Subscriptions + Invoices + + + + + + + Pay Invoice (SSO) + + + Legend: SSO = secure single sign-on; SF = Salesforce + diff --git a/package.json b/package.json index 50f89b7f..fd5ca72b 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "globals": "^16.3.0", "husky": "^9.1.7", "prettier": "^3.6.2", + "sharp": "^0.34.3", "typescript": "^5.9.2", "typescript-eslint": "^8.40.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6198365a..167a99f5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,6 +39,9 @@ importers: prettier: specifier: ^3.6.2 version: 3.6.2 + sharp: + specifier: ^0.34.3 + version: 0.34.3 typescript: specifier: ^5.9.2 version: 5.9.2 @@ -7298,13 +7301,11 @@ snapshots: dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 - optional: true color@4.2.3: dependencies: color-convert: 2.0.1 color-string: 1.9.1 - optional: true colorette@2.0.20: {} @@ -8418,8 +8419,7 @@ snapshots: is-arrayish@0.2.1: {} - is-arrayish@0.3.2: - optional: true + is-arrayish@0.3.2: {} is-async-function@2.1.1: dependencies: @@ -9977,7 +9977,6 @@ snapshots: '@img/sharp-win32-arm64': 0.34.3 '@img/sharp-win32-ia32': 0.34.3 '@img/sharp-win32-x64': 0.34.3 - optional: true shebang-command@2.0.0: dependencies: @@ -10020,7 +10019,6 @@ snapshots: simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 - optional: true slash@3.0.0: {} diff --git a/scripts/tools/svg2png.mjs b/scripts/tools/svg2png.mjs new file mode 100644 index 00000000..3cd433d7 --- /dev/null +++ b/scripts/tools/svg2png.mjs @@ -0,0 +1,42 @@ +#!/usr/bin/env node +/** + * Simple SVG -> PNG converter using sharp. + * Usage: node svg2png.mjs + */ +import fs from 'node:fs/promises'; +import path from 'node:path'; +import sharp from 'sharp'; + +async function main() { + const [,, inPath, outPath, wArg, hArg] = process.argv; + if (!inPath || !outPath || !wArg || !hArg) { + console.error('Usage: node svg2png.mjs '); + process.exit(1); + } + const width = Number(wArg); + const height = Number(hArg); + if (!width || !height) { + console.error('Width and height must be numbers'); + process.exit(1); + } + + const absIn = path.resolve(inPath); + const absOut = path.resolve(outPath); + const svg = await fs.readFile(absIn); + + // Render with background white to avoid transparency issues in slides + const png = await sharp(svg, { density: 300 }) + .resize(width, height, { fit: 'contain', background: { r: 255, g: 255, b: 255, alpha: 1 } }) + .png({ compressionLevel: 9 }) + .toBuffer(); + + await fs.mkdir(path.dirname(absOut), { recursive: true }); + await fs.writeFile(absOut, png); + console.log(`Wrote ${absOut} (${width}x${height})`); +} + +main().catch((err) => { + console.error('svg2png failed:', err?.message || err); + process.exit(1); +}); +