@burdenoff/be-sdk 2026.825.8 → 2026.828.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/EventQueueFactory-J2XXPYXH.js +7 -0
- package/dist/{EventQueueFactory-ELT7NDXK.js.map → EventQueueFactory-J2XXPYXH.js.map} +1 -1
- package/dist/auth/index.js +2 -2
- package/dist/cache/index.js +3 -3
- package/dist/{chunk-AW6JUXCU.js → chunk-3UQMAUX4.js} +4 -4
- package/dist/{chunk-AW6JUXCU.js.map → chunk-3UQMAUX4.js.map} +1 -1
- package/dist/{chunk-N3YN6ZII.js → chunk-5JNHVKHG.js} +3 -3
- package/dist/{chunk-N3YN6ZII.js.map → chunk-5JNHVKHG.js.map} +1 -1
- package/dist/{chunk-7UJXIX4I.js → chunk-5NT2OEDQ.js} +3 -3
- package/dist/{chunk-7UJXIX4I.js.map → chunk-5NT2OEDQ.js.map} +1 -1
- package/dist/{chunk-OQLDXOZ3.js → chunk-6GL4SLU7.js} +3 -3
- package/dist/{chunk-OQLDXOZ3.js.map → chunk-6GL4SLU7.js.map} +1 -1
- package/dist/{chunk-L3QCRJOA.js → chunk-74Y5YD3U.js} +7 -7
- package/dist/{chunk-L3QCRJOA.js.map → chunk-74Y5YD3U.js.map} +1 -1
- package/dist/{chunk-NVVWSOY7.js → chunk-AX3UF33H.js} +3 -3
- package/dist/{chunk-NVVWSOY7.js.map → chunk-AX3UF33H.js.map} +1 -1
- package/dist/{chunk-Z3O32BW6.js → chunk-CPLFP5JK.js} +3 -3
- package/dist/{chunk-Z3O32BW6.js.map → chunk-CPLFP5JK.js.map} +1 -1
- package/dist/{chunk-XD5ZK727.js → chunk-DS3YMJ4X.js} +3 -3
- package/dist/{chunk-XD5ZK727.js.map → chunk-DS3YMJ4X.js.map} +1 -1
- package/dist/{chunk-2HANKZZM.js → chunk-ELU7VL3E.js} +3 -3
- package/dist/{chunk-2HANKZZM.js.map → chunk-ELU7VL3E.js.map} +1 -1
- package/dist/{chunk-KESVEZB2.js → chunk-FA5ROGTS.js} +3 -3
- package/dist/{chunk-KESVEZB2.js.map → chunk-FA5ROGTS.js.map} +1 -1
- package/dist/{chunk-WFVLQELZ.js → chunk-FYH5IAPR.js} +6 -6
- package/dist/{chunk-WFVLQELZ.js.map → chunk-FYH5IAPR.js.map} +1 -1
- package/dist/{chunk-RXMOV3YE.js → chunk-GJWQK3IU.js} +3 -3
- package/dist/{chunk-RXMOV3YE.js.map → chunk-GJWQK3IU.js.map} +1 -1
- package/dist/{chunk-TORD32GS.js → chunk-INAZ3PKF.js} +3 -3
- package/dist/{chunk-TORD32GS.js.map → chunk-INAZ3PKF.js.map} +1 -1
- package/dist/{chunk-UJG32VIP.js → chunk-IUJSIXMM.js} +3 -3
- package/dist/{chunk-UJG32VIP.js.map → chunk-IUJSIXMM.js.map} +1 -1
- package/dist/{chunk-VI4VSNTI.js → chunk-KJOSPVB2.js} +3 -3
- package/dist/{chunk-VI4VSNTI.js.map → chunk-KJOSPVB2.js.map} +1 -1
- package/dist/{chunk-UM32ZA3G.js → chunk-KMNSVLDS.js} +5 -5
- package/dist/{chunk-UM32ZA3G.js.map → chunk-KMNSVLDS.js.map} +1 -1
- package/dist/{chunk-VBXPFYZ5.js → chunk-KO2ZXZ7W.js} +3 -3
- package/dist/{chunk-VBXPFYZ5.js.map → chunk-KO2ZXZ7W.js.map} +1 -1
- package/dist/{chunk-VDYBUTFI.js → chunk-KW55Q6TA.js} +5 -5
- package/dist/{chunk-VDYBUTFI.js.map → chunk-KW55Q6TA.js.map} +1 -1
- package/dist/{chunk-OCYZEBOL.js → chunk-L5TDUAFN.js} +3 -3
- package/dist/{chunk-OCYZEBOL.js.map → chunk-L5TDUAFN.js.map} +1 -1
- package/dist/{chunk-S7LWYERE.js → chunk-LKCBI6B2.js} +3 -3
- package/dist/{chunk-S7LWYERE.js.map → chunk-LKCBI6B2.js.map} +1 -1
- package/dist/{chunk-LGTQ26Z2.js → chunk-MEA4BQNA.js} +3 -3
- package/dist/{chunk-LGTQ26Z2.js.map → chunk-MEA4BQNA.js.map} +1 -1
- package/dist/{chunk-QLVKMWFA.js → chunk-MWPYA2HD.js} +3 -3
- package/dist/{chunk-QLVKMWFA.js.map → chunk-MWPYA2HD.js.map} +1 -1
- package/dist/{chunk-XWVP4MC6.js → chunk-MZCBEJ67.js} +3 -3
- package/dist/{chunk-XWVP4MC6.js.map → chunk-MZCBEJ67.js.map} +1 -1
- package/dist/{chunk-URDYOM2L.js → chunk-QJN4K7LD.js} +4 -4
- package/dist/{chunk-URDYOM2L.js.map → chunk-QJN4K7LD.js.map} +1 -1
- package/dist/{chunk-CBZNP6RF.js → chunk-RU266375.js} +48 -7
- package/dist/chunk-RU266375.js.map +1 -0
- package/dist/{chunk-A6DGEZJ4.js → chunk-UD5PPGVU.js} +3 -3
- package/dist/{chunk-A6DGEZJ4.js.map → chunk-UD5PPGVU.js.map} +1 -1
- package/dist/{chunk-JNJSSBKO.js → chunk-UFXHLQ2T.js} +5 -5
- package/dist/{chunk-JNJSSBKO.js.map → chunk-UFXHLQ2T.js.map} +1 -1
- package/dist/{chunk-F5SGJ6VS.js → chunk-UNASM5VJ.js} +3 -3
- package/dist/{chunk-F5SGJ6VS.js.map → chunk-UNASM5VJ.js.map} +1 -1
- package/dist/{chunk-5LXDPGDH.js → chunk-VAT66FJA.js} +3 -3
- package/dist/{chunk-5LXDPGDH.js.map → chunk-VAT66FJA.js.map} +1 -1
- package/dist/{chunk-WROR2NMB.js → chunk-XCQN6GH7.js} +5 -5
- package/dist/{chunk-WROR2NMB.js.map → chunk-XCQN6GH7.js.map} +1 -1
- package/dist/{chunk-4X5WL6I3.js → chunk-XYWLCNJH.js} +5 -5
- package/dist/{chunk-4X5WL6I3.js.map → chunk-XYWLCNJH.js.map} +1 -1
- package/dist/{chunk-MX4AHK3E.js → chunk-YAQ7GNAC.js} +6 -6
- package/dist/{chunk-MX4AHK3E.js.map → chunk-YAQ7GNAC.js.map} +1 -1
- package/dist/{chunk-RNR45JQH.js → chunk-YK7C5DU6.js} +3 -3
- package/dist/{chunk-RNR45JQH.js.map → chunk-YK7C5DU6.js.map} +1 -1
- package/dist/{chunk-IC7YDBGE.js → chunk-YNDJQRI3.js} +3 -3
- package/dist/{chunk-IC7YDBGE.js.map → chunk-YNDJQRI3.js.map} +1 -1
- package/dist/{chunk-WCJIZR5Q.js → chunk-Z5BURBFZ.js} +3 -3
- package/dist/{chunk-WCJIZR5Q.js.map → chunk-Z5BURBFZ.js.map} +1 -1
- package/dist/client/internal-client.js +2 -2
- package/dist/database/index.js +2 -2
- package/dist/event-queue/index.js +6 -6
- package/dist/export/index.js +5 -5
- package/dist/feature-flags/index.js +2 -2
- package/dist/gateway/index.js +4 -4
- package/dist/gateway/security/index.js +2 -2
- package/dist/graph/index.js +8 -8
- package/dist/graphql/index.js +4 -4
- package/dist/graphql/services/index.js +2 -2
- package/dist/i18n/index.js +2 -2
- package/dist/{index-BtpoFSLa.d.ts → index-BLWIKXin.d.ts} +1 -1
- package/dist/{index-C0qWSC_Q.d.ts → index-hWpL68Vx.d.ts} +4 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.js +43 -43
- package/dist/init/index.js +6 -6
- package/dist/instrumentation/index.d.ts +2 -2
- package/dist/instrumentation/index.js +2 -2
- package/dist/layer/index.js +2 -2
- package/dist/lifecycle/index.js +2 -2
- package/dist/logger/index.d.ts +1 -1
- package/dist/logger/index.js +1 -1
- package/dist/middleware/index.js +2 -2
- package/dist/notifications/index.js +2 -2
- package/dist/observability/index.js +2 -2
- package/dist/pino-logger-GJ2CYLD5.js +5 -0
- package/dist/{pino-logger-XF275Y5C.js.map → pino-logger-GJ2CYLD5.js.map} +1 -1
- package/dist/platform/index.js +2 -2
- package/dist/prisma/index.js +8 -8
- package/dist/rbac/index.js +2 -2
- package/dist/resource-caps/index.js +2 -2
- package/dist/server/index.js +6 -6
- package/dist/sharding/index.js +1 -1
- package/dist/sharing/index.js +2 -2
- package/dist/telemetry/index.d.ts +3 -3
- package/dist/telemetry/index.js +5 -5
- package/dist/temporal/index.js +2 -2
- package/dist/tracker/index.js +4 -4
- package/dist/workspace-guard-7PEZT3ZJ.js +5 -0
- package/dist/{workspace-guard-4BUG4ZP2.js.map → workspace-guard-7PEZT3ZJ.js.map} +1 -1
- package/package.json +1 -1
- package/dist/EventQueueFactory-ELT7NDXK.js +0 -7
- package/dist/chunk-CBZNP6RF.js.map +0 -1
- package/dist/pino-logger-XF275Y5C.js +0 -5
- package/dist/workspace-guard-4BUG4ZP2.js +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/temporal/client.ts","../src/temporal/worker.ts","../src/temporal/module.ts"],"names":["temporalClientModule","getTemporalClientModule","TemporalClient","client","connection","config","isConnected","connectionTimeout","tls","connect","logger","info","address","namespace","Connection","Client","tlsOptions","undefined","error","Error","message","String","disconnect","close","getClient","startWorkflow","workflowType","options","debug","workflowId","taskQueue","handle","workflow","start","args","workflowExecutionTimeout","workflowRunTimeout","workflowTaskTimeout","cronSchedule","memo","searchAttributes","executeWorkflow","result","execute","getWorkflowHandle","runId","getHandle","signalWorkflow","signalName","signal","queryWorkflow","queryName","query","cancelWorkflow","cancel","terminateWorkflow","reason","terminate","describeWorkflow","description","describe","status","name","getWorkflowResult","isClientConnected","getConfig","TemporalClientFactory","createWorkspaceClient","process","env","createTenantClient","createFromEnv","moduleType","createClientForLayer","layer","serviceName","envPrefix","toUpperCase","defaults","DEFAULT_LAYER_RESOURCES","temporalAddress","layerPrefix","derivedNamespace","replace","createFromLayerEnv","startsWith","temporalWorkerModule","getTemporalWorkerModule","TemporalWorker","worker","isRunning","maxConcurrentWorkflowTaskExecutions","maxConcurrentActivityTaskExecutions","debugMode","warn","Worker","NativeConnection","create","workflowsPath","activities","run","stop","shutdown","isWorkerRunning","TemporalWorkerFactory","createWorkspaceWorker","createTenantWorker","TemporalWorkerManager","workers","Map","registerWorker","has","set","startAll","count","size","startPromises","Array","from","entries","map","Promise","all","stopAll","stopPromises","getWorker","get","removeWorker","delete","getWorkerNames","keys","TemporalModule","workerManager","autoConnect","initialize","catch","getWorkerManager","createWorker","startWorkers","stopWorkers","fromEnv"],"mappings":"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","file":"chunk-IC7YDBGE.js","sourcesContent":["/**\n * Temporal Client Module\n * Provides unified Temporal client for workspace and tenant microservices\n *\n * NOTE: Uses dynamic imports to avoid requiring @temporalio/client at bundle time.\n * This allows services that don't use Temporal to avoid installing the dependency.\n */\n\nimport type {\n Client as TemporalClientType,\n Connection as TemporalConnectionType,\n WorkflowHandle,\n} from '@temporalio/client';\nimport type { Duration } from '@temporalio/common';\nimport { logger } from '../logger/index.js';\nimport type { ServiceLayer } from '../types/layer.js';\nimport { DEFAULT_LAYER_RESOURCES } from '../types/layer.js';\n\n// Lazy-loaded Temporal client module\nlet temporalClientModule: typeof import('@temporalio/client') | null = null;\n\n/**\n * Lazily load the @temporalio/client module\n */\nasync function getTemporalClientModule(): Promise<typeof import('@temporalio/client')> {\n if (!temporalClientModule) {\n temporalClientModule = await import('@temporalio/client');\n }\n return temporalClientModule;\n}\n\n/**\n * Workflow search attributes type for visibility queries\n * Uses a generic Record type to avoid importing deprecated SearchAttributes\n * Search attributes are key-value pairs used for workflow visibility and querying\n * We use unknown for maximum compatibility with the SDK's internal types\n */\ntype WorkflowSearchAttributes = Record<string, unknown>;\n\n/**\n * Temporal client configuration\n */\nexport interface TemporalClientConfig {\n /** Temporal server address (e.g., localhost:7233 or K8s service DNS) */\n address: string;\n /** Temporal namespace (e.g., workspace-tags, tenant-auth) */\n namespace: string;\n /** Default task queue for workflows */\n taskQueue?: string;\n /** Connection timeout in milliseconds */\n connectionTimeout?: number;\n /** Enable TLS for connection */\n tls?: boolean;\n /** TLS certificate options */\n tlsOptions?: {\n serverNameOverride?: string;\n serverRootCACertificate?: Buffer;\n clientCertPair?: {\n crt: Buffer;\n key: Buffer;\n };\n };\n}\n\n/**\n * Workflow execution options\n */\nexport interface WorkflowStartOptions<T extends unknown[] = unknown[]> {\n /** Workflow ID (must be unique) */\n workflowId: string;\n /** Task queue name */\n taskQueue: string;\n /** Workflow arguments */\n args?: T;\n /** Workflow execution timeout (duration string like '1m', '1h', milliseconds, or Duration object) */\n workflowExecutionTimeout?: Duration;\n /** Workflow run timeout (duration string like '1m', '1h', milliseconds, or Duration object) */\n workflowRunTimeout?: Duration;\n /** Workflow task timeout (duration string like '1m', '1h', milliseconds, or Duration object) */\n workflowTaskTimeout?: Duration;\n /** Cron schedule (for scheduled workflows) */\n cronSchedule?: string;\n /** Memo (indexed metadata) */\n memo?: Record<string, unknown>;\n /** Search attributes for workflow visibility (extracted from SDK to avoid deprecated type import) */\n searchAttributes?: WorkflowSearchAttributes;\n}\n\n/**\n * Temporal Client wrapper for Burdenoff microservices\n */\nexport class TemporalClient {\n private client: TemporalClientType | null = null;\n private connection: TemporalConnectionType | null = null;\n private config: TemporalClientConfig;\n private isConnected = false;\n\n constructor(config: TemporalClientConfig) {\n this.config = {\n connectionTimeout: 10000,\n tls: false,\n ...config,\n };\n }\n\n /**\n * Connect to Temporal server\n */\n async connect(): Promise<TemporalClientType> {\n if (this.client && this.isConnected) {\n return this.client;\n }\n\n try {\n logger.info('Connecting to Temporal server', {\n address: this.config.address,\n namespace: this.config.namespace,\n });\n\n // Dynamically import Temporal client module\n const { Connection, Client } = await getTemporalClientModule();\n\n this.connection = await Connection.connect({\n address: this.config.address,\n tls: this.config.tls ? this.config.tlsOptions : undefined,\n });\n\n this.client = new Client({\n connection: this.connection,\n namespace: this.config.namespace,\n });\n\n this.isConnected = true;\n\n logger.info('Successfully connected to Temporal', {\n address: this.config.address,\n namespace: this.config.namespace,\n });\n\n return this.client;\n } catch (error) {\n logger.error('Failed to connect to Temporal', {\n error: error instanceof Error ? error.message : String(error),\n address: this.config.address,\n });\n throw error;\n }\n }\n\n /**\n * Disconnect from Temporal server\n */\n async disconnect(): Promise<void> {\n if (this.connection) {\n await this.connection.close();\n this.connection = null;\n this.client = null;\n this.isConnected = false;\n\n logger.info('Disconnected from Temporal', {\n address: this.config.address,\n });\n }\n }\n\n /**\n * Get the underlying Temporal client\n */\n async getClient(): Promise<TemporalClientType> {\n return this.connect();\n }\n\n /**\n * Start a workflow execution using string workflow name\n * Note: Since workflow is specified as string (not function reference),\n * return type is WorkflowHandle without type parameter\n */\n async startWorkflow<T extends unknown[] = unknown[]>(\n workflowType: string,\n options: WorkflowStartOptions<T>\n ): Promise<WorkflowHandle> {\n const client = await this.connect();\n\n try {\n logger.debug('Starting workflow', {\n workflowType,\n workflowId: options.workflowId,\n taskQueue: options.taskQueue,\n });\n\n const handle = await client.workflow.start(workflowType, {\n workflowId: options.workflowId,\n taskQueue: options.taskQueue,\n args: options.args ?? [],\n workflowExecutionTimeout: options.workflowExecutionTimeout,\n workflowRunTimeout: options.workflowRunTimeout,\n workflowTaskTimeout: options.workflowTaskTimeout,\n cronSchedule: options.cronSchedule,\n memo: options.memo,\n searchAttributes: options.searchAttributes as Record<string, never>,\n });\n\n logger.info('Workflow started successfully', {\n workflowType,\n workflowId: options.workflowId,\n });\n\n return handle;\n } catch (error) {\n logger.error('Failed to start workflow', {\n workflowType,\n workflowId: options.workflowId,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Execute a workflow and wait for result using string workflow name\n * Note: Since workflow is specified as string (not function reference),\n * return type is unknown (caller must assert type if needed)\n */\n async executeWorkflow<T extends unknown[] = unknown[]>(\n workflowType: string,\n options: WorkflowStartOptions<T>\n ): Promise<unknown> {\n const client = await this.connect();\n\n try {\n logger.debug('Executing workflow', {\n workflowType,\n workflowId: options.workflowId,\n taskQueue: options.taskQueue,\n });\n\n const result = await client.workflow.execute(workflowType, {\n workflowId: options.workflowId,\n taskQueue: options.taskQueue,\n args: options.args ?? [],\n workflowExecutionTimeout: options.workflowExecutionTimeout,\n workflowRunTimeout: options.workflowRunTimeout,\n workflowTaskTimeout: options.workflowTaskTimeout,\n memo: options.memo,\n searchAttributes: options.searchAttributes as Record<string, never>,\n });\n\n logger.info('Workflow executed successfully', {\n workflowType,\n workflowId: options.workflowId,\n });\n\n return result;\n } catch (error) {\n logger.error('Failed to execute workflow', {\n workflowType,\n workflowId: options.workflowId,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Get workflow handle by ID\n */\n async getWorkflowHandle(workflowId: string, runId?: string): Promise<WorkflowHandle> {\n const client = await this.connect();\n return client.workflow.getHandle(workflowId, runId);\n }\n\n /**\n * Signal a running workflow\n */\n async signalWorkflow(workflowId: string, signalName: string, args?: unknown[]): Promise<void> {\n const handle = await this.getWorkflowHandle(workflowId);\n\n try {\n await handle.signal(signalName, args);\n\n logger.info('Workflow signal sent', {\n workflowId,\n signalName,\n });\n } catch (error) {\n logger.error('Failed to signal workflow', {\n workflowId,\n signalName,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Query a running workflow\n */\n async queryWorkflow(workflowId: string, queryName: string, args?: unknown[]): Promise<unknown> {\n const handle = await this.getWorkflowHandle(workflowId);\n\n try {\n const result = await handle.query(queryName, args);\n\n logger.debug('Workflow query executed', {\n workflowId,\n queryName,\n });\n\n return result;\n } catch (error) {\n logger.error('Failed to query workflow', {\n workflowId,\n queryName,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Cancel a running workflow\n */\n async cancelWorkflow(workflowId: string): Promise<void> {\n const handle = await this.getWorkflowHandle(workflowId);\n\n try {\n await handle.cancel();\n\n logger.info('Workflow cancelled', {\n workflowId,\n });\n } catch (error) {\n logger.error('Failed to cancel workflow', {\n workflowId,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Terminate a running workflow\n */\n async terminateWorkflow(workflowId: string, reason?: string): Promise<void> {\n const handle = await this.getWorkflowHandle(workflowId);\n\n try {\n await handle.terminate(reason);\n\n logger.info('Workflow terminated', {\n workflowId,\n reason,\n });\n } catch (error) {\n logger.error('Failed to terminate workflow', {\n workflowId,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Describe a workflow execution\n */\n async describeWorkflow(workflowId: string): Promise<unknown> {\n const handle = await this.getWorkflowHandle(workflowId);\n\n try {\n const description = await handle.describe();\n\n logger.debug('Workflow described', {\n workflowId,\n status: description.status.name,\n });\n\n return description;\n } catch (error) {\n logger.error('Failed to describe workflow', {\n workflowId,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Get workflow result\n */\n async getWorkflowResult(workflowId: string): Promise<unknown> {\n const handle = await this.getWorkflowHandle(workflowId);\n\n try {\n const result = await handle.result();\n\n logger.info('Workflow result retrieved', {\n workflowId,\n });\n\n return result;\n } catch (error) {\n logger.error('Failed to get workflow result', {\n workflowId,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Check if client is connected\n */\n isClientConnected(): boolean {\n return this.isConnected;\n }\n\n /**\n * Get configuration\n */\n getConfig(): TemporalClientConfig {\n return { ...this.config };\n }\n}\n\n/**\n * Factory for creating Temporal clients based on module type\n */\nexport class TemporalClientFactory {\n /**\n * Create a Temporal client for workspace modules\n */\n static createWorkspaceClient(config?: Partial<TemporalClientConfig>): TemporalClient {\n const address = config?.address || process.env['TEMPORAL_WORKSPACE_URL'] || 'localhost:7233';\n const namespace = config?.namespace || process.env['TEMPORAL_NAMESPACE'] || 'workspace-default';\n const taskQueue = config?.taskQueue || process.env['TEMPORAL_TASK_QUEUE'];\n\n return new TemporalClient({\n address,\n namespace,\n taskQueue,\n ...config,\n });\n }\n\n /**\n * Create a Temporal client for tenant modules\n */\n static createTenantClient(config?: Partial<TemporalClientConfig>): TemporalClient {\n const address = config?.address || process.env['TEMPORAL_TENANT_URL'] || 'localhost:7233';\n const namespace = config?.namespace || process.env['TEMPORAL_NAMESPACE'] || 'tenant-default';\n const taskQueue = config?.taskQueue || process.env['TEMPORAL_TASK_QUEUE'];\n\n return new TemporalClient({\n address,\n namespace,\n taskQueue,\n ...config,\n });\n }\n\n /**\n * Create a Temporal client from environment variables\n * Automatically detects workspace vs tenant based on TEMPORAL_MODULE_TYPE\n */\n static createFromEnv(): TemporalClient {\n const moduleType = process.env['TEMPORAL_MODULE_TYPE'] || 'workspace';\n\n if (moduleType === 'tenant') {\n return this.createTenantClient();\n }\n\n return this.createWorkspaceClient();\n }\n\n // ========================================================================\n // Layer-Aware Factory Methods\n // ========================================================================\n\n /**\n * Create a Temporal client for a specific layer\n *\n * @param layer - Service layer ('wspace' or 'global')\n * @param serviceName - Service name for identification\n * @param config - Optional configuration overrides\n * @returns Temporal client configured for the layer\n *\n * @example\n * ```typescript\n * const client = TemporalClientFactory.createClientForLayer('wspace', 'wspace-tags-svc');\n * await client.connect();\n * await client.startWorkflow('processTagUpdate', {\n * workflowId: 'tag-update-123',\n * taskQueue: 'wspace-tags-queue',\n * });\n * ```\n */\n static createClientForLayer(\n layer: ServiceLayer,\n serviceName: string,\n config?: Partial<TemporalClientConfig>\n ): TemporalClient {\n const envPrefix = layer.toUpperCase();\n const defaults = DEFAULT_LAYER_RESOURCES[layer];\n\n // Resolve Temporal address from layer-specific or generic env vars\n const address =\n config?.address ||\n process.env[`${envPrefix}_TEMPORAL_ADDRESS`] ||\n process.env['TEMPORAL_ADDRESS'] ||\n defaults.temporalAddress;\n\n // Derive namespace from layer and service name\n const layerPrefix = `${layer}-`;\n const derivedNamespace = `${layer}-${serviceName.replace(layerPrefix, '').replace('-svc', '')}`;\n const namespace =\n config?.namespace ||\n process.env[`${envPrefix}_TEMPORAL_NAMESPACE`] ||\n process.env['TEMPORAL_NAMESPACE'] ||\n derivedNamespace;\n\n const taskQueue =\n config?.taskQueue ||\n process.env[`${envPrefix}_TEMPORAL_TASK_QUEUE`] ||\n process.env['TEMPORAL_TASK_QUEUE'] ||\n `${serviceName}-queue`;\n\n logger.info('[TemporalClientFactory] Creating layer client', {\n layer,\n serviceName,\n address,\n namespace,\n taskQueue,\n });\n\n return new TemporalClient({\n address,\n namespace,\n taskQueue,\n ...config,\n });\n }\n\n /**\n * Create a Temporal client from layer environment detection\n *\n * @param serviceName - Service name for identification\n * @returns Temporal client configured based on detected layer\n */\n static createFromLayerEnv(serviceName: string): TemporalClient {\n // Detect layer from service name or environment\n const layer =\n (process.env['SERVICE_LAYER'] as ServiceLayer) || (serviceName.startsWith('global-') ? 'global' : 'wspace');\n\n return this.createClientForLayer(layer, serviceName);\n }\n}\n","/**\n * Temporal Worker Module\n * Provides utilities for creating and managing Temporal workers\n *\n * NOTE: Uses dynamic imports to avoid requiring @temporalio/worker at bundle time.\n * This allows services that don't use Temporal to avoid installing the dependency.\n */\n\nimport type {\n Worker as TemporalWorkerType,\n NativeConnection as TemporalNativeConnectionType,\n} from '@temporalio/worker';\nimport { logger } from '../logger/index.js';\n\n// Lazy-loaded Temporal worker module\nlet temporalWorkerModule: typeof import('@temporalio/worker') | null = null;\n\n/**\n * Lazily load the @temporalio/worker module\n */\nasync function getTemporalWorkerModule(): Promise<typeof import('@temporalio/worker')> {\n if (!temporalWorkerModule) {\n temporalWorkerModule = await import('@temporalio/worker');\n }\n return temporalWorkerModule;\n}\n\n/**\n * Worker configuration\n */\nexport interface TemporalWorkerConfig {\n /** Temporal server address */\n address: string;\n /** Temporal namespace */\n namespace: string;\n /** Task queue to poll */\n taskQueue: string;\n /** Path to workflow files */\n workflowsPath: string;\n /** Activities object */\n activities?: Record<string, (...args: unknown[]) => Promise<unknown>>;\n /** Maximum concurrent workflow task executions */\n maxConcurrentWorkflowTaskExecutions?: number;\n /** Maximum concurrent activity task executions */\n maxConcurrentActivityTaskExecutions?: number;\n /** Enable debug logging */\n debugMode?: boolean;\n /** TLS options */\n tls?: {\n serverNameOverride?: string;\n serverRootCACertificate?: Buffer;\n clientCertPair?: {\n crt: Buffer;\n key: Buffer;\n };\n };\n}\n\n/**\n * Temporal Worker wrapper for Burdenoff microservices\n */\nexport class TemporalWorker {\n private worker: TemporalWorkerType | null = null;\n private connection: TemporalNativeConnectionType | null = null;\n private config: TemporalWorkerConfig;\n private isRunning = false;\n\n constructor(config: TemporalWorkerConfig) {\n this.config = {\n maxConcurrentWorkflowTaskExecutions: 100,\n maxConcurrentActivityTaskExecutions: 100,\n debugMode: false,\n ...config,\n };\n }\n\n /**\n * Start the worker\n */\n async start(): Promise<void> {\n if (this.isRunning) {\n logger.warn('Worker already running', {\n taskQueue: this.config.taskQueue,\n });\n return;\n }\n\n try {\n logger.info('Starting Temporal worker', {\n address: this.config.address,\n namespace: this.config.namespace,\n taskQueue: this.config.taskQueue,\n });\n\n // Dynamically import Temporal worker module\n const { Worker, NativeConnection } = await getTemporalWorkerModule();\n\n // Create native connection\n this.connection = await NativeConnection.connect({\n address: this.config.address,\n tls: this.config.tls,\n });\n\n // Create worker\n this.worker = await Worker.create({\n connection: this.connection,\n namespace: this.config.namespace,\n taskQueue: this.config.taskQueue,\n workflowsPath: this.config.workflowsPath,\n activities: this.config.activities,\n maxConcurrentWorkflowTaskExecutions: this.config.maxConcurrentWorkflowTaskExecutions,\n maxConcurrentActivityTaskExecutions: this.config.maxConcurrentActivityTaskExecutions,\n });\n\n this.isRunning = true;\n\n logger.info('Temporal worker started successfully', {\n taskQueue: this.config.taskQueue,\n workflowsPath: this.config.workflowsPath,\n });\n\n // Run worker (this blocks)\n await this.worker.run();\n } catch (error) {\n logger.error('Failed to start Temporal worker', {\n error: error instanceof Error ? error.message : String(error),\n taskQueue: this.config.taskQueue,\n });\n throw error;\n }\n }\n\n /**\n * Stop the worker\n */\n async stop(): Promise<void> {\n if (!this.isRunning || !this.worker) {\n logger.warn('Worker not running', {\n taskQueue: this.config.taskQueue,\n });\n return;\n }\n\n try {\n logger.info('Stopping Temporal worker', {\n taskQueue: this.config.taskQueue,\n });\n\n this.worker.shutdown();\n this.isRunning = false;\n\n if (this.connection) {\n await this.connection.close();\n this.connection = null;\n }\n\n this.worker = null;\n\n logger.info('Temporal worker stopped successfully', {\n taskQueue: this.config.taskQueue,\n });\n } catch (error) {\n logger.error('Failed to stop Temporal worker', {\n error: error instanceof Error ? error.message : String(error),\n taskQueue: this.config.taskQueue,\n });\n throw error;\n }\n }\n\n /**\n * Check if worker is running\n */\n isWorkerRunning(): boolean {\n return this.isRunning;\n }\n\n /**\n * Get worker configuration\n */\n getConfig(): TemporalWorkerConfig {\n return { ...this.config };\n }\n}\n\n/**\n * Factory for creating Temporal workers based on module type\n */\nexport class TemporalWorkerFactory {\n /**\n * Create a Temporal worker for workspace modules\n */\n static createWorkspaceWorker(config: {\n workflowsPath: string;\n activities?: Record<string, (...args: unknown[]) => Promise<unknown>>;\n taskQueue?: string;\n namespace?: string;\n address?: string;\n }): TemporalWorker {\n const address = config.address || process.env['TEMPORAL_WORKSPACE_URL'] || 'localhost:7233';\n const namespace = config.namespace || process.env['TEMPORAL_NAMESPACE'] || 'workspace-default';\n const taskQueue = config.taskQueue || process.env['TEMPORAL_TASK_QUEUE'] || 'workspace-default-tasks';\n\n return new TemporalWorker({\n address,\n namespace,\n taskQueue,\n workflowsPath: config.workflowsPath,\n activities: config.activities,\n });\n }\n\n /**\n * Create a Temporal worker for tenant modules\n */\n static createTenantWorker(config: {\n workflowsPath: string;\n activities?: Record<string, (...args: unknown[]) => Promise<unknown>>;\n taskQueue?: string;\n namespace?: string;\n address?: string;\n }): TemporalWorker {\n const address = config.address || process.env['TEMPORAL_TENANT_URL'] || 'localhost:7233';\n const namespace = config.namespace || process.env['TEMPORAL_NAMESPACE'] || 'tenant-default';\n const taskQueue = config.taskQueue || process.env['TEMPORAL_TASK_QUEUE'] || 'tenant-default-tasks';\n\n return new TemporalWorker({\n address,\n namespace,\n taskQueue,\n workflowsPath: config.workflowsPath,\n activities: config.activities,\n });\n }\n\n /**\n * Create a Temporal worker from environment variables\n * Automatically detects workspace vs tenant based on TEMPORAL_MODULE_TYPE\n */\n static createFromEnv(config: {\n workflowsPath: string;\n activities?: Record<string, (...args: unknown[]) => Promise<unknown>>;\n }): TemporalWorker {\n const moduleType = process.env['TEMPORAL_MODULE_TYPE'] || 'workspace';\n\n if (moduleType === 'tenant') {\n return this.createTenantWorker(config);\n }\n\n return this.createWorkspaceWorker(config);\n }\n}\n\n/**\n * Worker manager for handling worker lifecycle\n */\nexport class TemporalWorkerManager {\n private workers: Map<string, TemporalWorker> = new Map();\n\n /**\n * Register a worker\n */\n registerWorker(name: string, worker: TemporalWorker): void {\n if (this.workers.has(name)) {\n logger.warn('Worker already registered, replacing', { name });\n }\n this.workers.set(name, worker);\n }\n\n /**\n * Start all registered workers\n */\n async startAll(): Promise<void> {\n logger.info('Starting all Temporal workers', {\n count: this.workers.size,\n });\n\n const startPromises = Array.from(this.workers.entries()).map(async ([name, worker]) => {\n try {\n await worker.start();\n logger.info('Worker started', { name });\n } catch (error) {\n logger.error('Failed to start worker', {\n name,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n });\n\n await Promise.all(startPromises);\n }\n\n /**\n * Stop all registered workers\n */\n async stopAll(): Promise<void> {\n logger.info('Stopping all Temporal workers', {\n count: this.workers.size,\n });\n\n const stopPromises = Array.from(this.workers.entries()).map(async ([name, worker]) => {\n try {\n await worker.stop();\n logger.info('Worker stopped', { name });\n } catch (error) {\n logger.error('Failed to stop worker', {\n name,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n });\n\n await Promise.all(stopPromises);\n }\n\n /**\n * Get a worker by name\n */\n getWorker(name: string): TemporalWorker | undefined {\n return this.workers.get(name);\n }\n\n /**\n * Remove a worker\n */\n removeWorker(name: string): boolean {\n return this.workers.delete(name);\n }\n\n /**\n * Get all registered worker names\n */\n getWorkerNames(): string[] {\n return Array.from(this.workers.keys());\n }\n}\n","/**\n * Temporal Module for Burdenoff SDK\n * Integrates Temporal workflow orchestration into the SDK\n */\n\nimport type { TemporalClient } from './client.js';\nimport { TemporalClientFactory } from './client.js';\nimport type { TemporalWorker } from './worker.js';\nimport { TemporalWorkerFactory, TemporalWorkerManager } from './worker.js';\nimport { logger } from '../logger/index.js';\n\n/**\n * Temporal module configuration\n */\nexport interface TemporalModuleConfig {\n /** Module type (workspace or tenant) */\n moduleType: 'workspace' | 'tenant';\n /** Temporal server address */\n address?: string;\n /** Temporal namespace */\n namespace?: string;\n /** Default task queue */\n taskQueue?: string;\n /** Auto-connect on initialization */\n autoConnect?: boolean;\n}\n\n/**\n * Temporal Module\n * Main entry point for Temporal functionality in the SDK\n */\nexport class TemporalModule {\n private client: TemporalClient;\n private workerManager: TemporalWorkerManager;\n private config: TemporalModuleConfig;\n\n constructor(config: TemporalModuleConfig) {\n this.config = {\n autoConnect: true,\n ...config,\n };\n\n // Create client based on module type\n if (config.moduleType === 'tenant') {\n this.client = TemporalClientFactory.createTenantClient({\n address: config.address,\n namespace: config.namespace,\n taskQueue: config.taskQueue,\n });\n } else {\n this.client = TemporalClientFactory.createWorkspaceClient({\n address: config.address,\n namespace: config.namespace,\n taskQueue: config.taskQueue,\n });\n }\n\n this.workerManager = new TemporalWorkerManager();\n\n // Trigger autoConnect if enabled (non-blocking)\n if (this.config.autoConnect) {\n this.initialize();\n }\n }\n\n /**\n * Initialize the Temporal module (connect client)\n * This is called automatically if autoConnect is true\n */\n private initialize(): void {\n // Connect in background\n this.client.connect().catch((error) => {\n logger.error('Failed to auto-connect to Temporal', {\n error: error instanceof Error ? error.message : String(error),\n });\n });\n }\n\n /**\n * Get the Temporal client\n */\n getClient(): TemporalClient {\n return this.client;\n }\n\n /**\n * Get the worker manager\n */\n getWorkerManager(): TemporalWorkerManager {\n return this.workerManager;\n }\n\n /**\n * Create and register a worker\n */\n createWorker(config: {\n name: string;\n workflowsPath: string;\n activities?: Record<string, (...args: unknown[]) => Promise<unknown>>;\n taskQueue?: string;\n }): TemporalWorker {\n const worker =\n this.config.moduleType === 'tenant'\n ? TemporalWorkerFactory.createTenantWorker({\n workflowsPath: config.workflowsPath,\n activities: config.activities,\n taskQueue: config.taskQueue,\n namespace: this.config.namespace,\n address: this.config.address,\n })\n : TemporalWorkerFactory.createWorkspaceWorker({\n workflowsPath: config.workflowsPath,\n activities: config.activities,\n taskQueue: config.taskQueue,\n namespace: this.config.namespace,\n address: this.config.address,\n });\n\n this.workerManager.registerWorker(config.name, worker);\n return worker;\n }\n\n /**\n * Start all registered workers\n */\n async startWorkers(): Promise<void> {\n await this.workerManager.startAll();\n }\n\n /**\n * Stop all registered workers\n */\n async stopWorkers(): Promise<void> {\n await this.workerManager.stopAll();\n }\n\n /**\n * Disconnect from Temporal\n */\n async disconnect(): Promise<void> {\n await this.client.disconnect();\n }\n\n /**\n * Get module configuration\n */\n getConfig(): TemporalModuleConfig {\n return { ...this.config };\n }\n\n /**\n * Create a Temporal module from environment variables\n */\n static fromEnv(): TemporalModule {\n const moduleType = (process.env['TEMPORAL_MODULE_TYPE'] || 'workspace') as 'workspace' | 'tenant';\n const address =\n moduleType === 'tenant'\n ? process.env['TEMPORAL_TENANT_URL'] || 'localhost:7233'\n : process.env['TEMPORAL_WORKSPACE_URL'] || 'localhost:7233';\n const namespace = process.env['TEMPORAL_NAMESPACE'];\n const taskQueue = process.env['TEMPORAL_TASK_QUEUE'];\n\n return new TemporalModule({\n moduleType,\n address,\n namespace,\n taskQueue,\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/temporal/client.ts","../src/temporal/worker.ts","../src/temporal/module.ts"],"names":["temporalClientModule","getTemporalClientModule","TemporalClient","client","connection","config","isConnected","connectionTimeout","tls","connect","logger","info","address","namespace","Connection","Client","tlsOptions","undefined","error","Error","message","String","disconnect","close","getClient","startWorkflow","workflowType","options","debug","workflowId","taskQueue","handle","workflow","start","args","workflowExecutionTimeout","workflowRunTimeout","workflowTaskTimeout","cronSchedule","memo","searchAttributes","executeWorkflow","result","execute","getWorkflowHandle","runId","getHandle","signalWorkflow","signalName","signal","queryWorkflow","queryName","query","cancelWorkflow","cancel","terminateWorkflow","reason","terminate","describeWorkflow","description","describe","status","name","getWorkflowResult","isClientConnected","getConfig","TemporalClientFactory","createWorkspaceClient","process","env","createTenantClient","createFromEnv","moduleType","createClientForLayer","layer","serviceName","envPrefix","toUpperCase","defaults","DEFAULT_LAYER_RESOURCES","temporalAddress","layerPrefix","derivedNamespace","replace","createFromLayerEnv","startsWith","temporalWorkerModule","getTemporalWorkerModule","TemporalWorker","worker","isRunning","maxConcurrentWorkflowTaskExecutions","maxConcurrentActivityTaskExecutions","debugMode","warn","Worker","NativeConnection","create","workflowsPath","activities","run","stop","shutdown","isWorkerRunning","TemporalWorkerFactory","createWorkspaceWorker","createTenantWorker","TemporalWorkerManager","workers","Map","registerWorker","has","set","startAll","count","size","startPromises","Array","from","entries","map","Promise","all","stopAll","stopPromises","getWorker","get","removeWorker","delete","getWorkerNames","keys","TemporalModule","workerManager","autoConnect","initialize","catch","getWorkerManager","createWorker","startWorkers","stopWorkers","fromEnv"],"mappings":"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","file":"chunk-YNDJQRI3.js","sourcesContent":["/**\n * Temporal Client Module\n * Provides unified Temporal client for workspace and tenant microservices\n *\n * NOTE: Uses dynamic imports to avoid requiring @temporalio/client at bundle time.\n * This allows services that don't use Temporal to avoid installing the dependency.\n */\n\nimport type {\n Client as TemporalClientType,\n Connection as TemporalConnectionType,\n WorkflowHandle,\n} from '@temporalio/client';\nimport type { Duration } from '@temporalio/common';\nimport { logger } from '../logger/index.js';\nimport type { ServiceLayer } from '../types/layer.js';\nimport { DEFAULT_LAYER_RESOURCES } from '../types/layer.js';\n\n// Lazy-loaded Temporal client module\nlet temporalClientModule: typeof import('@temporalio/client') | null = null;\n\n/**\n * Lazily load the @temporalio/client module\n */\nasync function getTemporalClientModule(): Promise<typeof import('@temporalio/client')> {\n if (!temporalClientModule) {\n temporalClientModule = await import('@temporalio/client');\n }\n return temporalClientModule;\n}\n\n/**\n * Workflow search attributes type for visibility queries\n * Uses a generic Record type to avoid importing deprecated SearchAttributes\n * Search attributes are key-value pairs used for workflow visibility and querying\n * We use unknown for maximum compatibility with the SDK's internal types\n */\ntype WorkflowSearchAttributes = Record<string, unknown>;\n\n/**\n * Temporal client configuration\n */\nexport interface TemporalClientConfig {\n /** Temporal server address (e.g., localhost:7233 or K8s service DNS) */\n address: string;\n /** Temporal namespace (e.g., workspace-tags, tenant-auth) */\n namespace: string;\n /** Default task queue for workflows */\n taskQueue?: string;\n /** Connection timeout in milliseconds */\n connectionTimeout?: number;\n /** Enable TLS for connection */\n tls?: boolean;\n /** TLS certificate options */\n tlsOptions?: {\n serverNameOverride?: string;\n serverRootCACertificate?: Buffer;\n clientCertPair?: {\n crt: Buffer;\n key: Buffer;\n };\n };\n}\n\n/**\n * Workflow execution options\n */\nexport interface WorkflowStartOptions<T extends unknown[] = unknown[]> {\n /** Workflow ID (must be unique) */\n workflowId: string;\n /** Task queue name */\n taskQueue: string;\n /** Workflow arguments */\n args?: T;\n /** Workflow execution timeout (duration string like '1m', '1h', milliseconds, or Duration object) */\n workflowExecutionTimeout?: Duration;\n /** Workflow run timeout (duration string like '1m', '1h', milliseconds, or Duration object) */\n workflowRunTimeout?: Duration;\n /** Workflow task timeout (duration string like '1m', '1h', milliseconds, or Duration object) */\n workflowTaskTimeout?: Duration;\n /** Cron schedule (for scheduled workflows) */\n cronSchedule?: string;\n /** Memo (indexed metadata) */\n memo?: Record<string, unknown>;\n /** Search attributes for workflow visibility (extracted from SDK to avoid deprecated type import) */\n searchAttributes?: WorkflowSearchAttributes;\n}\n\n/**\n * Temporal Client wrapper for Burdenoff microservices\n */\nexport class TemporalClient {\n private client: TemporalClientType | null = null;\n private connection: TemporalConnectionType | null = null;\n private config: TemporalClientConfig;\n private isConnected = false;\n\n constructor(config: TemporalClientConfig) {\n this.config = {\n connectionTimeout: 10000,\n tls: false,\n ...config,\n };\n }\n\n /**\n * Connect to Temporal server\n */\n async connect(): Promise<TemporalClientType> {\n if (this.client && this.isConnected) {\n return this.client;\n }\n\n try {\n logger.info('Connecting to Temporal server', {\n address: this.config.address,\n namespace: this.config.namespace,\n });\n\n // Dynamically import Temporal client module\n const { Connection, Client } = await getTemporalClientModule();\n\n this.connection = await Connection.connect({\n address: this.config.address,\n tls: this.config.tls ? this.config.tlsOptions : undefined,\n });\n\n this.client = new Client({\n connection: this.connection,\n namespace: this.config.namespace,\n });\n\n this.isConnected = true;\n\n logger.info('Successfully connected to Temporal', {\n address: this.config.address,\n namespace: this.config.namespace,\n });\n\n return this.client;\n } catch (error) {\n logger.error('Failed to connect to Temporal', {\n error: error instanceof Error ? error.message : String(error),\n address: this.config.address,\n });\n throw error;\n }\n }\n\n /**\n * Disconnect from Temporal server\n */\n async disconnect(): Promise<void> {\n if (this.connection) {\n await this.connection.close();\n this.connection = null;\n this.client = null;\n this.isConnected = false;\n\n logger.info('Disconnected from Temporal', {\n address: this.config.address,\n });\n }\n }\n\n /**\n * Get the underlying Temporal client\n */\n async getClient(): Promise<TemporalClientType> {\n return this.connect();\n }\n\n /**\n * Start a workflow execution using string workflow name\n * Note: Since workflow is specified as string (not function reference),\n * return type is WorkflowHandle without type parameter\n */\n async startWorkflow<T extends unknown[] = unknown[]>(\n workflowType: string,\n options: WorkflowStartOptions<T>\n ): Promise<WorkflowHandle> {\n const client = await this.connect();\n\n try {\n logger.debug('Starting workflow', {\n workflowType,\n workflowId: options.workflowId,\n taskQueue: options.taskQueue,\n });\n\n const handle = await client.workflow.start(workflowType, {\n workflowId: options.workflowId,\n taskQueue: options.taskQueue,\n args: options.args ?? [],\n workflowExecutionTimeout: options.workflowExecutionTimeout,\n workflowRunTimeout: options.workflowRunTimeout,\n workflowTaskTimeout: options.workflowTaskTimeout,\n cronSchedule: options.cronSchedule,\n memo: options.memo,\n searchAttributes: options.searchAttributes as Record<string, never>,\n });\n\n logger.info('Workflow started successfully', {\n workflowType,\n workflowId: options.workflowId,\n });\n\n return handle;\n } catch (error) {\n logger.error('Failed to start workflow', {\n workflowType,\n workflowId: options.workflowId,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Execute a workflow and wait for result using string workflow name\n * Note: Since workflow is specified as string (not function reference),\n * return type is unknown (caller must assert type if needed)\n */\n async executeWorkflow<T extends unknown[] = unknown[]>(\n workflowType: string,\n options: WorkflowStartOptions<T>\n ): Promise<unknown> {\n const client = await this.connect();\n\n try {\n logger.debug('Executing workflow', {\n workflowType,\n workflowId: options.workflowId,\n taskQueue: options.taskQueue,\n });\n\n const result = await client.workflow.execute(workflowType, {\n workflowId: options.workflowId,\n taskQueue: options.taskQueue,\n args: options.args ?? [],\n workflowExecutionTimeout: options.workflowExecutionTimeout,\n workflowRunTimeout: options.workflowRunTimeout,\n workflowTaskTimeout: options.workflowTaskTimeout,\n memo: options.memo,\n searchAttributes: options.searchAttributes as Record<string, never>,\n });\n\n logger.info('Workflow executed successfully', {\n workflowType,\n workflowId: options.workflowId,\n });\n\n return result;\n } catch (error) {\n logger.error('Failed to execute workflow', {\n workflowType,\n workflowId: options.workflowId,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Get workflow handle by ID\n */\n async getWorkflowHandle(workflowId: string, runId?: string): Promise<WorkflowHandle> {\n const client = await this.connect();\n return client.workflow.getHandle(workflowId, runId);\n }\n\n /**\n * Signal a running workflow\n */\n async signalWorkflow(workflowId: string, signalName: string, args?: unknown[]): Promise<void> {\n const handle = await this.getWorkflowHandle(workflowId);\n\n try {\n await handle.signal(signalName, args);\n\n logger.info('Workflow signal sent', {\n workflowId,\n signalName,\n });\n } catch (error) {\n logger.error('Failed to signal workflow', {\n workflowId,\n signalName,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Query a running workflow\n */\n async queryWorkflow(workflowId: string, queryName: string, args?: unknown[]): Promise<unknown> {\n const handle = await this.getWorkflowHandle(workflowId);\n\n try {\n const result = await handle.query(queryName, args);\n\n logger.debug('Workflow query executed', {\n workflowId,\n queryName,\n });\n\n return result;\n } catch (error) {\n logger.error('Failed to query workflow', {\n workflowId,\n queryName,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Cancel a running workflow\n */\n async cancelWorkflow(workflowId: string): Promise<void> {\n const handle = await this.getWorkflowHandle(workflowId);\n\n try {\n await handle.cancel();\n\n logger.info('Workflow cancelled', {\n workflowId,\n });\n } catch (error) {\n logger.error('Failed to cancel workflow', {\n workflowId,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Terminate a running workflow\n */\n async terminateWorkflow(workflowId: string, reason?: string): Promise<void> {\n const handle = await this.getWorkflowHandle(workflowId);\n\n try {\n await handle.terminate(reason);\n\n logger.info('Workflow terminated', {\n workflowId,\n reason,\n });\n } catch (error) {\n logger.error('Failed to terminate workflow', {\n workflowId,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Describe a workflow execution\n */\n async describeWorkflow(workflowId: string): Promise<unknown> {\n const handle = await this.getWorkflowHandle(workflowId);\n\n try {\n const description = await handle.describe();\n\n logger.debug('Workflow described', {\n workflowId,\n status: description.status.name,\n });\n\n return description;\n } catch (error) {\n logger.error('Failed to describe workflow', {\n workflowId,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Get workflow result\n */\n async getWorkflowResult(workflowId: string): Promise<unknown> {\n const handle = await this.getWorkflowHandle(workflowId);\n\n try {\n const result = await handle.result();\n\n logger.info('Workflow result retrieved', {\n workflowId,\n });\n\n return result;\n } catch (error) {\n logger.error('Failed to get workflow result', {\n workflowId,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n }\n\n /**\n * Check if client is connected\n */\n isClientConnected(): boolean {\n return this.isConnected;\n }\n\n /**\n * Get configuration\n */\n getConfig(): TemporalClientConfig {\n return { ...this.config };\n }\n}\n\n/**\n * Factory for creating Temporal clients based on module type\n */\nexport class TemporalClientFactory {\n /**\n * Create a Temporal client for workspace modules\n */\n static createWorkspaceClient(config?: Partial<TemporalClientConfig>): TemporalClient {\n const address = config?.address || process.env['TEMPORAL_WORKSPACE_URL'] || 'localhost:7233';\n const namespace = config?.namespace || process.env['TEMPORAL_NAMESPACE'] || 'workspace-default';\n const taskQueue = config?.taskQueue || process.env['TEMPORAL_TASK_QUEUE'];\n\n return new TemporalClient({\n address,\n namespace,\n taskQueue,\n ...config,\n });\n }\n\n /**\n * Create a Temporal client for tenant modules\n */\n static createTenantClient(config?: Partial<TemporalClientConfig>): TemporalClient {\n const address = config?.address || process.env['TEMPORAL_TENANT_URL'] || 'localhost:7233';\n const namespace = config?.namespace || process.env['TEMPORAL_NAMESPACE'] || 'tenant-default';\n const taskQueue = config?.taskQueue || process.env['TEMPORAL_TASK_QUEUE'];\n\n return new TemporalClient({\n address,\n namespace,\n taskQueue,\n ...config,\n });\n }\n\n /**\n * Create a Temporal client from environment variables\n * Automatically detects workspace vs tenant based on TEMPORAL_MODULE_TYPE\n */\n static createFromEnv(): TemporalClient {\n const moduleType = process.env['TEMPORAL_MODULE_TYPE'] || 'workspace';\n\n if (moduleType === 'tenant') {\n return this.createTenantClient();\n }\n\n return this.createWorkspaceClient();\n }\n\n // ========================================================================\n // Layer-Aware Factory Methods\n // ========================================================================\n\n /**\n * Create a Temporal client for a specific layer\n *\n * @param layer - Service layer ('wspace' or 'global')\n * @param serviceName - Service name for identification\n * @param config - Optional configuration overrides\n * @returns Temporal client configured for the layer\n *\n * @example\n * ```typescript\n * const client = TemporalClientFactory.createClientForLayer('wspace', 'wspace-tags-svc');\n * await client.connect();\n * await client.startWorkflow('processTagUpdate', {\n * workflowId: 'tag-update-123',\n * taskQueue: 'wspace-tags-queue',\n * });\n * ```\n */\n static createClientForLayer(\n layer: ServiceLayer,\n serviceName: string,\n config?: Partial<TemporalClientConfig>\n ): TemporalClient {\n const envPrefix = layer.toUpperCase();\n const defaults = DEFAULT_LAYER_RESOURCES[layer];\n\n // Resolve Temporal address from layer-specific or generic env vars\n const address =\n config?.address ||\n process.env[`${envPrefix}_TEMPORAL_ADDRESS`] ||\n process.env['TEMPORAL_ADDRESS'] ||\n defaults.temporalAddress;\n\n // Derive namespace from layer and service name\n const layerPrefix = `${layer}-`;\n const derivedNamespace = `${layer}-${serviceName.replace(layerPrefix, '').replace('-svc', '')}`;\n const namespace =\n config?.namespace ||\n process.env[`${envPrefix}_TEMPORAL_NAMESPACE`] ||\n process.env['TEMPORAL_NAMESPACE'] ||\n derivedNamespace;\n\n const taskQueue =\n config?.taskQueue ||\n process.env[`${envPrefix}_TEMPORAL_TASK_QUEUE`] ||\n process.env['TEMPORAL_TASK_QUEUE'] ||\n `${serviceName}-queue`;\n\n logger.info('[TemporalClientFactory] Creating layer client', {\n layer,\n serviceName,\n address,\n namespace,\n taskQueue,\n });\n\n return new TemporalClient({\n address,\n namespace,\n taskQueue,\n ...config,\n });\n }\n\n /**\n * Create a Temporal client from layer environment detection\n *\n * @param serviceName - Service name for identification\n * @returns Temporal client configured based on detected layer\n */\n static createFromLayerEnv(serviceName: string): TemporalClient {\n // Detect layer from service name or environment\n const layer =\n (process.env['SERVICE_LAYER'] as ServiceLayer) || (serviceName.startsWith('global-') ? 'global' : 'wspace');\n\n return this.createClientForLayer(layer, serviceName);\n }\n}\n","/**\n * Temporal Worker Module\n * Provides utilities for creating and managing Temporal workers\n *\n * NOTE: Uses dynamic imports to avoid requiring @temporalio/worker at bundle time.\n * This allows services that don't use Temporal to avoid installing the dependency.\n */\n\nimport type {\n Worker as TemporalWorkerType,\n NativeConnection as TemporalNativeConnectionType,\n} from '@temporalio/worker';\nimport { logger } from '../logger/index.js';\n\n// Lazy-loaded Temporal worker module\nlet temporalWorkerModule: typeof import('@temporalio/worker') | null = null;\n\n/**\n * Lazily load the @temporalio/worker module\n */\nasync function getTemporalWorkerModule(): Promise<typeof import('@temporalio/worker')> {\n if (!temporalWorkerModule) {\n temporalWorkerModule = await import('@temporalio/worker');\n }\n return temporalWorkerModule;\n}\n\n/**\n * Worker configuration\n */\nexport interface TemporalWorkerConfig {\n /** Temporal server address */\n address: string;\n /** Temporal namespace */\n namespace: string;\n /** Task queue to poll */\n taskQueue: string;\n /** Path to workflow files */\n workflowsPath: string;\n /** Activities object */\n activities?: Record<string, (...args: unknown[]) => Promise<unknown>>;\n /** Maximum concurrent workflow task executions */\n maxConcurrentWorkflowTaskExecutions?: number;\n /** Maximum concurrent activity task executions */\n maxConcurrentActivityTaskExecutions?: number;\n /** Enable debug logging */\n debugMode?: boolean;\n /** TLS options */\n tls?: {\n serverNameOverride?: string;\n serverRootCACertificate?: Buffer;\n clientCertPair?: {\n crt: Buffer;\n key: Buffer;\n };\n };\n}\n\n/**\n * Temporal Worker wrapper for Burdenoff microservices\n */\nexport class TemporalWorker {\n private worker: TemporalWorkerType | null = null;\n private connection: TemporalNativeConnectionType | null = null;\n private config: TemporalWorkerConfig;\n private isRunning = false;\n\n constructor(config: TemporalWorkerConfig) {\n this.config = {\n maxConcurrentWorkflowTaskExecutions: 100,\n maxConcurrentActivityTaskExecutions: 100,\n debugMode: false,\n ...config,\n };\n }\n\n /**\n * Start the worker\n */\n async start(): Promise<void> {\n if (this.isRunning) {\n logger.warn('Worker already running', {\n taskQueue: this.config.taskQueue,\n });\n return;\n }\n\n try {\n logger.info('Starting Temporal worker', {\n address: this.config.address,\n namespace: this.config.namespace,\n taskQueue: this.config.taskQueue,\n });\n\n // Dynamically import Temporal worker module\n const { Worker, NativeConnection } = await getTemporalWorkerModule();\n\n // Create native connection\n this.connection = await NativeConnection.connect({\n address: this.config.address,\n tls: this.config.tls,\n });\n\n // Create worker\n this.worker = await Worker.create({\n connection: this.connection,\n namespace: this.config.namespace,\n taskQueue: this.config.taskQueue,\n workflowsPath: this.config.workflowsPath,\n activities: this.config.activities,\n maxConcurrentWorkflowTaskExecutions: this.config.maxConcurrentWorkflowTaskExecutions,\n maxConcurrentActivityTaskExecutions: this.config.maxConcurrentActivityTaskExecutions,\n });\n\n this.isRunning = true;\n\n logger.info('Temporal worker started successfully', {\n taskQueue: this.config.taskQueue,\n workflowsPath: this.config.workflowsPath,\n });\n\n // Run worker (this blocks)\n await this.worker.run();\n } catch (error) {\n logger.error('Failed to start Temporal worker', {\n error: error instanceof Error ? error.message : String(error),\n taskQueue: this.config.taskQueue,\n });\n throw error;\n }\n }\n\n /**\n * Stop the worker\n */\n async stop(): Promise<void> {\n if (!this.isRunning || !this.worker) {\n logger.warn('Worker not running', {\n taskQueue: this.config.taskQueue,\n });\n return;\n }\n\n try {\n logger.info('Stopping Temporal worker', {\n taskQueue: this.config.taskQueue,\n });\n\n this.worker.shutdown();\n this.isRunning = false;\n\n if (this.connection) {\n await this.connection.close();\n this.connection = null;\n }\n\n this.worker = null;\n\n logger.info('Temporal worker stopped successfully', {\n taskQueue: this.config.taskQueue,\n });\n } catch (error) {\n logger.error('Failed to stop Temporal worker', {\n error: error instanceof Error ? error.message : String(error),\n taskQueue: this.config.taskQueue,\n });\n throw error;\n }\n }\n\n /**\n * Check if worker is running\n */\n isWorkerRunning(): boolean {\n return this.isRunning;\n }\n\n /**\n * Get worker configuration\n */\n getConfig(): TemporalWorkerConfig {\n return { ...this.config };\n }\n}\n\n/**\n * Factory for creating Temporal workers based on module type\n */\nexport class TemporalWorkerFactory {\n /**\n * Create a Temporal worker for workspace modules\n */\n static createWorkspaceWorker(config: {\n workflowsPath: string;\n activities?: Record<string, (...args: unknown[]) => Promise<unknown>>;\n taskQueue?: string;\n namespace?: string;\n address?: string;\n }): TemporalWorker {\n const address = config.address || process.env['TEMPORAL_WORKSPACE_URL'] || 'localhost:7233';\n const namespace = config.namespace || process.env['TEMPORAL_NAMESPACE'] || 'workspace-default';\n const taskQueue = config.taskQueue || process.env['TEMPORAL_TASK_QUEUE'] || 'workspace-default-tasks';\n\n return new TemporalWorker({\n address,\n namespace,\n taskQueue,\n workflowsPath: config.workflowsPath,\n activities: config.activities,\n });\n }\n\n /**\n * Create a Temporal worker for tenant modules\n */\n static createTenantWorker(config: {\n workflowsPath: string;\n activities?: Record<string, (...args: unknown[]) => Promise<unknown>>;\n taskQueue?: string;\n namespace?: string;\n address?: string;\n }): TemporalWorker {\n const address = config.address || process.env['TEMPORAL_TENANT_URL'] || 'localhost:7233';\n const namespace = config.namespace || process.env['TEMPORAL_NAMESPACE'] || 'tenant-default';\n const taskQueue = config.taskQueue || process.env['TEMPORAL_TASK_QUEUE'] || 'tenant-default-tasks';\n\n return new TemporalWorker({\n address,\n namespace,\n taskQueue,\n workflowsPath: config.workflowsPath,\n activities: config.activities,\n });\n }\n\n /**\n * Create a Temporal worker from environment variables\n * Automatically detects workspace vs tenant based on TEMPORAL_MODULE_TYPE\n */\n static createFromEnv(config: {\n workflowsPath: string;\n activities?: Record<string, (...args: unknown[]) => Promise<unknown>>;\n }): TemporalWorker {\n const moduleType = process.env['TEMPORAL_MODULE_TYPE'] || 'workspace';\n\n if (moduleType === 'tenant') {\n return this.createTenantWorker(config);\n }\n\n return this.createWorkspaceWorker(config);\n }\n}\n\n/**\n * Worker manager for handling worker lifecycle\n */\nexport class TemporalWorkerManager {\n private workers: Map<string, TemporalWorker> = new Map();\n\n /**\n * Register a worker\n */\n registerWorker(name: string, worker: TemporalWorker): void {\n if (this.workers.has(name)) {\n logger.warn('Worker already registered, replacing', { name });\n }\n this.workers.set(name, worker);\n }\n\n /**\n * Start all registered workers\n */\n async startAll(): Promise<void> {\n logger.info('Starting all Temporal workers', {\n count: this.workers.size,\n });\n\n const startPromises = Array.from(this.workers.entries()).map(async ([name, worker]) => {\n try {\n await worker.start();\n logger.info('Worker started', { name });\n } catch (error) {\n logger.error('Failed to start worker', {\n name,\n error: error instanceof Error ? error.message : String(error),\n });\n throw error;\n }\n });\n\n await Promise.all(startPromises);\n }\n\n /**\n * Stop all registered workers\n */\n async stopAll(): Promise<void> {\n logger.info('Stopping all Temporal workers', {\n count: this.workers.size,\n });\n\n const stopPromises = Array.from(this.workers.entries()).map(async ([name, worker]) => {\n try {\n await worker.stop();\n logger.info('Worker stopped', { name });\n } catch (error) {\n logger.error('Failed to stop worker', {\n name,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n });\n\n await Promise.all(stopPromises);\n }\n\n /**\n * Get a worker by name\n */\n getWorker(name: string): TemporalWorker | undefined {\n return this.workers.get(name);\n }\n\n /**\n * Remove a worker\n */\n removeWorker(name: string): boolean {\n return this.workers.delete(name);\n }\n\n /**\n * Get all registered worker names\n */\n getWorkerNames(): string[] {\n return Array.from(this.workers.keys());\n }\n}\n","/**\n * Temporal Module for Burdenoff SDK\n * Integrates Temporal workflow orchestration into the SDK\n */\n\nimport type { TemporalClient } from './client.js';\nimport { TemporalClientFactory } from './client.js';\nimport type { TemporalWorker } from './worker.js';\nimport { TemporalWorkerFactory, TemporalWorkerManager } from './worker.js';\nimport { logger } from '../logger/index.js';\n\n/**\n * Temporal module configuration\n */\nexport interface TemporalModuleConfig {\n /** Module type (workspace or tenant) */\n moduleType: 'workspace' | 'tenant';\n /** Temporal server address */\n address?: string;\n /** Temporal namespace */\n namespace?: string;\n /** Default task queue */\n taskQueue?: string;\n /** Auto-connect on initialization */\n autoConnect?: boolean;\n}\n\n/**\n * Temporal Module\n * Main entry point for Temporal functionality in the SDK\n */\nexport class TemporalModule {\n private client: TemporalClient;\n private workerManager: TemporalWorkerManager;\n private config: TemporalModuleConfig;\n\n constructor(config: TemporalModuleConfig) {\n this.config = {\n autoConnect: true,\n ...config,\n };\n\n // Create client based on module type\n if (config.moduleType === 'tenant') {\n this.client = TemporalClientFactory.createTenantClient({\n address: config.address,\n namespace: config.namespace,\n taskQueue: config.taskQueue,\n });\n } else {\n this.client = TemporalClientFactory.createWorkspaceClient({\n address: config.address,\n namespace: config.namespace,\n taskQueue: config.taskQueue,\n });\n }\n\n this.workerManager = new TemporalWorkerManager();\n\n // Trigger autoConnect if enabled (non-blocking)\n if (this.config.autoConnect) {\n this.initialize();\n }\n }\n\n /**\n * Initialize the Temporal module (connect client)\n * This is called automatically if autoConnect is true\n */\n private initialize(): void {\n // Connect in background\n this.client.connect().catch((error) => {\n logger.error('Failed to auto-connect to Temporal', {\n error: error instanceof Error ? error.message : String(error),\n });\n });\n }\n\n /**\n * Get the Temporal client\n */\n getClient(): TemporalClient {\n return this.client;\n }\n\n /**\n * Get the worker manager\n */\n getWorkerManager(): TemporalWorkerManager {\n return this.workerManager;\n }\n\n /**\n * Create and register a worker\n */\n createWorker(config: {\n name: string;\n workflowsPath: string;\n activities?: Record<string, (...args: unknown[]) => Promise<unknown>>;\n taskQueue?: string;\n }): TemporalWorker {\n const worker =\n this.config.moduleType === 'tenant'\n ? TemporalWorkerFactory.createTenantWorker({\n workflowsPath: config.workflowsPath,\n activities: config.activities,\n taskQueue: config.taskQueue,\n namespace: this.config.namespace,\n address: this.config.address,\n })\n : TemporalWorkerFactory.createWorkspaceWorker({\n workflowsPath: config.workflowsPath,\n activities: config.activities,\n taskQueue: config.taskQueue,\n namespace: this.config.namespace,\n address: this.config.address,\n });\n\n this.workerManager.registerWorker(config.name, worker);\n return worker;\n }\n\n /**\n * Start all registered workers\n */\n async startWorkers(): Promise<void> {\n await this.workerManager.startAll();\n }\n\n /**\n * Stop all registered workers\n */\n async stopWorkers(): Promise<void> {\n await this.workerManager.stopAll();\n }\n\n /**\n * Disconnect from Temporal\n */\n async disconnect(): Promise<void> {\n await this.client.disconnect();\n }\n\n /**\n * Get module configuration\n */\n getConfig(): TemporalModuleConfig {\n return { ...this.config };\n }\n\n /**\n * Create a Temporal module from environment variables\n */\n static fromEnv(): TemporalModule {\n const moduleType = (process.env['TEMPORAL_MODULE_TYPE'] || 'workspace') as 'workspace' | 'tenant';\n const address =\n moduleType === 'tenant'\n ? process.env['TEMPORAL_TENANT_URL'] || 'localhost:7233'\n : process.env['TEMPORAL_WORKSPACE_URL'] || 'localhost:7233';\n const namespace = process.env['TEMPORAL_NAMESPACE'];\n const taskQueue = process.env['TEMPORAL_TASK_QUEUE'];\n\n return new TemporalModule({\n moduleType,\n address,\n namespace,\n taskQueue,\n });\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logger } from './chunk-
|
|
1
|
+
import { logger } from './chunk-RU266375.js';
|
|
2
2
|
import { __export, __name } from './chunk-XE4OXN2W.js';
|
|
3
3
|
|
|
4
4
|
// src/platform/index.ts
|
|
@@ -690,5 +690,5 @@ var LLMRouter = class {
|
|
|
690
690
|
};
|
|
691
691
|
|
|
692
692
|
export { CircuitBreakerOpenError, DEFAULT_GRAPHQL_PAGE_LIMIT, LLMRouter, MAX_GRAPHQL_PAGE_LIMIT, __resetHttpClientBreakers, buildCacheKey, buildConnection, buildLoaders, buildOffsetPage, clampGraphqlLimit, clampLimit, clampOffset, createHttpClient, createLeaderLease, decodeCursor, dropOldPartitions, encodeCursor, ensureMonthlyPartitions, getNamespaceVersion, httpClient, invalidateNamespace, monthlyPartitionName, normalizeCursorPagination, normalizeOffsetPagination, normalizeRedisUrl, paginate, platform_exports, rateLimitIncr, resolveReferenceLoader, toPrismaPage, withLeaderLock };
|
|
693
|
-
//# sourceMappingURL=chunk-
|
|
694
|
-
//# sourceMappingURL=chunk-
|
|
693
|
+
//# sourceMappingURL=chunk-Z5BURBFZ.js.map
|
|
694
|
+
//# sourceMappingURL=chunk-Z5BURBFZ.js.map
|