wip
This commit is contained in:
@@ -11,12 +11,14 @@ import type { AutomationEnginePort } from '@gridpilot/automation/application/por
|
||||
import type { AuthenticationServicePort } from '@gridpilot/automation/application/ports/AuthenticationServicePort';
|
||||
import type { LoggerPort } from '@gridpilot/automation/application/ports/LoggerPort';
|
||||
import type { OverlaySyncPort } from '@gridpilot/automation/application/ports/OverlaySyncPort';
|
||||
import type { CheckoutServicePort } from '@gridpilot/automation/application/ports/CheckoutServicePort';
|
||||
import { StartAutomationSessionUseCase } from '@gridpilot/automation/application/use-cases/StartAutomationSessionUseCase';
|
||||
import { CheckAuthenticationUseCase } from '@gridpilot/automation/application/use-cases/CheckAuthenticationUseCase';
|
||||
import { InitiateLoginUseCase } from '@gridpilot/automation/application/use-cases/InitiateLoginUseCase';
|
||||
import { ClearSessionUseCase } from '@gridpilot/automation/application/use-cases/ClearSessionUseCase';
|
||||
import { ConfirmCheckoutUseCase } from '@gridpilot/automation/application/use-cases/ConfirmCheckoutUseCase';
|
||||
import { OverlaySyncService } from '@gridpilot/automation/application/services/OverlaySyncService';
|
||||
import type { IAutomationLifecycleEmitter } from '@gridpilot/automation/infrastructure/adapters/IAutomationLifecycleEmitter';
|
||||
|
||||
// Infrastructure
|
||||
import { InMemorySessionRepository } from '@gridpilot/automation/infrastructure/repositories/InMemorySessionRepository';
|
||||
@@ -187,13 +189,19 @@ export function configureDIContainer(): void {
|
||||
browserAutomation
|
||||
);
|
||||
|
||||
// Checkout Service (singleton, backed by browser automation)
|
||||
container.registerInstance<CheckoutServicePort>(
|
||||
DI_TOKENS.CheckoutService,
|
||||
browserAutomation as unknown as CheckoutServicePort
|
||||
);
|
||||
|
||||
// Automation Engine (singleton)
|
||||
const sessionRepository = container.resolve<SessionRepositoryPort>(DI_TOKENS.SessionRepository);
|
||||
let automationEngine: AutomationEnginePort;
|
||||
|
||||
if (fixtureMode) {
|
||||
automationEngine = new AutomationEngineAdapter(
|
||||
browserAutomation as any,
|
||||
browserAutomation,
|
||||
sessionRepository
|
||||
);
|
||||
} else {
|
||||
@@ -247,16 +255,16 @@ export function configureDIContainer(): void {
|
||||
}
|
||||
|
||||
// Overlay Sync Service - create singleton instance directly
|
||||
const lifecycleEmitter = browserAutomation as any;
|
||||
const lifecycleEmitter = browserAutomation as unknown as IAutomationLifecycleEmitter;
|
||||
const publisher = {
|
||||
publish: async (_event: any) => {
|
||||
publish: async (event: unknown) => {
|
||||
try {
|
||||
logger.debug?.('OverlaySyncPublisher.publish', _event);
|
||||
logger.debug?.('OverlaySyncPublisher.publish', { event });
|
||||
} catch {
|
||||
// swallow
|
||||
}
|
||||
},
|
||||
} as any;
|
||||
};
|
||||
const overlaySyncService = new OverlaySyncService({
|
||||
lifecycleEmitter,
|
||||
publisher,
|
||||
|
||||
Reference in New Issue
Block a user